typeid(*<class>).name(), откуда 15 в имени |
Здравствуйте, гость ( Вход | Регистрация )
typeid(*<class>).name(), откуда 15 в имени |
ЙаМайскЫйПчОЛ |
27.8.2009, 12:07
Сообщение
#1
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Доброго времени суток.
вот такой код
а вывод вот: Раскрывающийся текст 15FreqParametrWgt 15FreqParametrWgt 15ModeParametrWgt вопрос... откуда 15 в имене??? впринципе не критично, но не понятно... ЗЫ: вывод одинаковый в виндовсе и в линуксе Сообщение отредактировал ЙаМайскЫйПчОЛ - 27.8.2009, 12:09 |
|
|
BRE |
27.8.2009, 12:50
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Похоже что 15 это длина имени класса, а вот кто ее печатает или добавляет к имени пока не смотрел.
Точно, это длина имени класса. Проверял на gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2). Причем если в typeid передать указатель на объект, то впереди этой сигнатуры добавляется 'P' (P6Person). Для стандартных типов длина не указывается, т.е. int - 'i' int* - 'Pi' И вот еще ссылку нашел: http://bytes.com/topic/c/answers/139862-typeinfo Если используются namespace, то впереди будет идти N<длина имени namespace><имя namespace>. Сообщение отредактировал BRE - 27.8.2009, 13:23 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 10:00 |