Вопросы по теме 'typeid'
производные классы и проверка типов
Я пытаюсь написать метод, который принимает в качестве аргумента класс, производный от std::string. Метод перегружен несколькими различными сигнатурами функций. Я бы хотел, чтобы компиляция потерпела неудачу, если я попытаюсь вызвать ее с помощью...
133 просмотров
schedule
15.05.2023
Как определить реальный тип объекта во время выполнения в C ++;
Допустим, у нас есть иерархия классов. Внизу у нас есть Base, а вверху - Derived. Как определить класс объекта, даже если он преобразован в указатель базового класса.
Base* b = new Derived():
typeid(b).name(); // i want this to tell me that...
23830 просмотров
schedule
08.06.2022
Проверка типа объекта в C++11
У меня есть класс B, который наследуется от A.
class A
{
};
class B : public A
{
};
И у меня есть три объекта.
A* a = new A();
A* a2 = new B();
B* b = new B();
Я хотел бы проверить, является ли a объектом типа A, a2 является...
9393 просмотров
schedule
02.10.2023
Typeid работает некорректно
Я не могу правильно получить функцию typeid. Я что-то упускаю
Код:
class A
{
public:
int a1;
A()
{
}
};
class B: public A
{
public:
int b1;
B()
{
}
};
int main()
{
B tempb;
A tempa;...
4849 просмотров
schedule
06.09.2023
Как внедрить имя типа в виде строки в static_assert()?
Проблема
Следующее не создается, потому что сообщение не является строковым литералом.
template<typename T>
struct Foo
{
Foo()
{
static_assert( is_pod<T>::value, typeid(T).name() );
}
};
В конечном счете, я бы...
1107 просмотров
schedule
05.05.2022
результаты typeid не совпадают
У меня есть функция:
void func(unsigned int event) {
printf("%u %u\r\n", typeid(event), typeid(unsigned int&));
// prints 5338164 0
printf("%u %u\r\n", typeid(event), typeid(unsigned int));
// prints 21525556 0
}...
665 просмотров
schedule
28.09.2022
Странное поведение информации о типах во время выполнения
У меня есть два класса Base и Derived следующим образом:
class Base
{
public:
};
class Derived : public Base
{
public:
};
и основная функция:
int main()
{
Base* ptr = new Derived;
std::cout << typeid(*ptr).name()...
89 просмотров
schedule
16.10.2023
C++11 - уникальность typeid
В С++ 11 я использую это
typeid(T).name()
для моего собственного вычисления хэша. Мне не нужно, чтобы результат был одинаковым между запусками программы или компиляциями. Мне просто нужно, чтобы он был уникальным для типов. Я знаю, что он...
5244 просмотров
schedule
15.03.2024
Можно ли проверить, равен ли объект классу шаблона, не указывая тип шаблона?
Предположим, у меня есть класс:
template<typename T>
class ChartData {
public:
...
Теперь я хочу проверить, является ли объект value объектом ChartData:
if (value.type() == typeid(ChartData*))
Однако это вызывает ошибку...
167 просмотров
schedule
29.03.2024
Сравнение базовых (производных) типов, на которые указывает std::unique_ptr
Я пишу модульные тесты для проверки различных путей кода с участием фабричного класса.
Фабрика возвращает std::unique_ptr базовому типу:
class Base {};
class Derived1 : public class Base {};
class Derived2 : public class Base {};...
38 просмотров
schedule
05.03.2024
Загрузка объекта динамического класса
Есть ли способ использовать что-то вроде std::is_base_of на основе строк, сгенерированных typedid(...).name() , а не на самих типах?
In extenso, учитывая что-то вроде:
class A {...};
class B: public A {...};
A a;
B b;
std::string sa =...
13 просмотров
schedule
18.08.2023
Временная сложность операций typeid и dynamic_cast в C++
Если оставить в стороне все опасения по поводу необходимости использования typeid и dynamic_cast и их сомнительного влияния на обслуживание кода, есть ли какая-либо информация о производительности этих двух механизмов самоанализа динамического...
53 просмотров
schedule
07.05.2023