Вопросы по теме 'typeid'

Какое время жизни памяти указано для typeinfo::name()?
В C++ я могу использовать оператор typeid для получения имени любого полиморфного класса: const char* name = typeid( CMyClass ).name(); Как долго строка, на которую указывает возвращенный указатель const char* , будет доступна моей...
353 просмотров
schedule 15.09.2022

Странное использование `?:` в коде `typeid`
В одном из проектов, над которым я работаю, я вижу этот код struct Base { virtual ~Base() { } }; struct ClassX { bool isHoldingDerivedObj() const { return typeid(1 ? *m_basePtr : *m_basePtr) == typeid(Derived); } Base *m_basePtr; };...
2058 просмотров

С++ - как проверить, является ли тип класса шаблона недействительным?
Мне нужен способ проверить, является ли тип шаблонного класса недействительным. Вот моя попытка: template <typename target_type, typename start_function_type, typename end_function_type> class C_rule { public: //... void...
5571 просмотров
schedule 03.11.2022

Получение неправильного имени класса при использовании typeid -
Для собственного понимания я реализовал приведенную ниже программу. Но я вижу, что имя класса, возвращаемое typeid, немного изменено. Я знал, что это могло быть из-за искажения имени, но включение extern C тоже не помогает. Может ли кто-нибудь...
4593 просмотров
schedule 10.07.2023

Как проверить, к какому производному классу относится ваш объект с typeid?
Итак, я хочу проверить, является ли мой объект зельем или оружием. Как мне сделать это с typeid (т.е. или что-нибудь в этом отношении)?? Затем я хочу создать экземпляр объекта на основе этого условия. Я не могу просто сказать T temp, потому что...
932 просмотров
schedule 17.07.2022

Самый безопасный способ идентификации уникального типа в С++ 11
Где-то при формировании нового стандарта было обещано более легкое использование type_info , что, среди прочего, привело к реализации hash_code . Однако при реализации системы отражения в C++11 я снова столкнулся с проблемой уникальной...
1987 просмотров
schedule 05.11.2022

Почему строки, возвращаемые функцией name(), определяются реализацией?
Рассмотрим следующий пример: #include <iostream> #include <typeinfo> int main() { int a=9; std::cout << typeid(a).name() << '\n'; } Вывод на g++ 4.8.1: я Вывод на MSVS 2010: int Почему вывод зависит от...
136 просмотров
schedule 27.02.2023

Как получить строку имени класса фиксированного размера
Я использую typeid(ClassName).name() , чтобы получить имя для широкого диапазона типов классов. Однако мне нужно сделать его длину фиксированной (например, 8 символов). Во многих случаях класс находится в пространстве имен, что делает строку такой...
80 просмотров
schedule 25.09.2022

выражение в typeid оценивается дважды во время выполнения?
Обратите внимание, что выражение в операторе typeid будет оцениваться во время выполнения, если оно является lvalue типа с виртуальным членом. У меня есть тривиальный класс Base следующим образом class Base { public: Base(const...
75 просмотров
schedule 24.02.2023

Есть ли способ получить искаженное имя функции typeinfo на основе подписи, используя RTTI?
Я хочу использовать строки типа RTTI и искаженной функции (указателя). Прежде чем вы классифицируете это как проблему XY, я знаю, что есть лучшие варианты привязки функций с использованием полиморфизма и т. д. Это чисто академический вопрос, как...
123 просмотров
schedule 07.04.2024

std::is_floating_point возвращает false для float в некоторых случаях
В некоторых случаях, см. пример ниже, std::is_floating_point возвращает false вместо float . #include <iostream> #include <type_traits> #include <vector> int main() { ::std::cout <<...
1773 просмотров
schedule 07.04.2024