Вопросы по теме '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 просмотров
schedule
02.04.2023
С++ - как проверить, является ли тип класса шаблона недействительным?
Мне нужен способ проверить, является ли тип шаблонного класса недействительным.
Вот моя попытка:
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