📅  最后修改于: 2023-12-03 15:29:53.126000             🧑  作者: Mango
在C++中,可以使用typeid
运算符获取类型信息。具体而言,typeid
返回的是一个类型的std::type_info
对象,从中可以获取类型的名称。
#include <iostream>
#include <typeinfo>
int main()
{
int a = 3;
std::cout << typeid(a).name() << std::endl;
return 0;
}
运行上述代码,输出结果为:
i
输出结果表示a
的类型是int
,类型名称为i
。
需要注意的是,typeid
返回的类型名称并不一定是我们所熟悉的类型名称,因为C++标准没有规定类型名称的具体格式,这个名称有可能因编译器而异。为了得到可读性更好的类型名称,可以使用第三方库,例如Boost.TypeIndex和GSL的type_name
函数。
#include <iostream>
#include <boost/type_index.hpp>
int main()
{
int a = 3;
std::cout << boost::typeindex::type_id<decltype(a)>().pretty_name() << std::endl;
return 0;
}
运行上述代码,输出结果为:
int
输出结果为所求类型的名称,即int
。
总之,获取类型名称是C++开发中经常遇到的任务之一。虽然标准库提供了typeid
运算符,但是其返回的类型名称未必能够满足需求。因此,使用第三方库来获取可读性更好的类型名称是一个不错的选择。