3 回答
TA贡献1784条经验 获得超2个赞
我想建议我从Scott Meyer的“ Effective Modern C ++”中学到的boost :: typeindex,这是一个基本示例:
例
#include <boost/type_index.hpp>
class foo_bar
{
int whatever;
};
namespace bti = boost::typeindex;
template <typename T>
void from_type(T t)
{
std::cout << "\tT = " << bti::type_id_with_cvr<T>().pretty_name() << "\n";
}
int main()
{
std::cout << "If you want to print a template type, that's easy.\n";
from_type(1.0);
std::cout << "To get it from an object instance, just use decltype:\n";
foo_bar fb;
std::cout << "\tfb's type is : "
<< bti::type_id_with_cvr<decltype(fb)>().pretty_name() << "\n";
}
编译为“ g ++ --std = c ++ 14”会产生以下结果
输出量
如果要打印模板类型,这很容易。
T =两倍
要从对象实例获取它,只需使用decltype:
fb的类型是:foo_bar
- 3 回答
- 0 关注
- 493 浏览
添加回答
举报