Есть ли стандартная ф-ция определения класса объекта?
class A { };
class B: public A { };
int main()
{
B b;
A *pa = &b;
// false, а нужно что-то что выдает true
cout << (typeid(*pa).hash_code() == typeid(B).hash_code());
// true, а нужно что-то что выдает false
cout << (typeid(*pa).hash_code() == typeid(A).hash_code());
return 0;
}
Первый вариант легко реализовать (если включить RTTI и если класс полиморфный):
cout << (nullptr != dynamic_cast<B *>(pa));
Если класс не полиморфный то после приведения к базовому типу узнать оригинальный тип на основе RTTI нельзя.
decltype()
- годится не только для классов, но и вообще для типов данных.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сейчас: Код ищет количество точек, через которое пройдёт алгоритм для возвращения в исходную позицию
Найти k1-количество одинаковых элементов в двумерном массиве c++;