Для определения типа переменной в C++ существует функция typeid().name() из библиотеки typeinfo которую нужно предварительно подключить с помощью

#include <typeinfo>

Пример применения:

#include <string>
#include <iostream>
#include <typeinfo>
 
int main() {
	// Создадим четыре переменные разных типов
	int int_var = 1;
	float float_var = 1.0;
	char char_var = '0';
	std::string str1 = "www.heihei.ru";
	// Выведем на экран результат работы typeid
	std::cout << typeid(int_var).name() << std::endl;
	std::cout << typeid(float_var).name() << std::endl;
	std::cout << typeid(char_var).name() << std::endl;
	std::cout << typeid(str1).name() << std::endl;
	return 0;
	}

Результат:

float
char
class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >

C:\Users\ao\source\repos\typeid\x64\Debug\typeid.exe (process 132920) exited with code 0. Press any key to close this window . . .