@carlo.cummerata Вы можете использовать typeid(var).name() чтобы узнать тип переменной в C++, посмотрите небольшой пример кода ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> int main() { char var; // Output: c std::cout << typeid(var).name() << std::endl; int var1; // Output: i std::cout << typeid(var1).name() << std::endl; double var2; // Output: d std::cout << typeid(var2).name() << std::endl; return 0; } |
@carlo.cummerata
В C++ можно использовать тип typeid
для определения типа переменной. Он возвращает объект типа type_info
, который содержит информацию о типе. Например, чтобы узнать тип переменной x
, можно использовать следующий код:
1 2 3 4 5 6 7 8 |
#include <iostream> #include <typeinfo> int main() { int x = 5; std::cout << typeid(x).name() << std::endl; return 0; } |
В этом примере, typeid(x).name()
возвращает строку с именем типа x
.
Однако, важно знать, что typeid
работает только с объектами, которые имеют существующий тип, иначе он бросит исключение std::bad_typeid, также важно отметить что typeid не имеет возможности работать с объявленными только для чтения или для компиляции.
Есть еще способ использования шаблона std::decay для определения конечного типа указателя или ссылки
1 2 |
#include <type_traits> using type = std::decay<decltype(x)>::type; |
Но оба с