这与是否可以在标准 C++ 中打印变量的类型是同一个问题?但我不想要 RTTI。我正在使用表达式模板(例如 Eigen)编写代码,这意味着我的变量的类型可以真正涉及到,而我不知道实际的类型。但是,编译器知道类型并且可以在出现问题时告诉我:
error: ‘const struct Eigen::EigenBase<Eigen::Matrix<double, 1, 1, 0, 1, 1> >’ ...
有什么方法可以将变量名称转换为具有(静态)类型名称的字符串,以便在不破坏程序的情况下调试程序?例如
int a;
M b;
cout << TYPEOF(a) << endl << TYPEOF(b) << endl;
会打印
int
const struct Eigen::EigenBase<Eigen::Matrix<double, 1, 1, 0, 1, 1> >’