主要来源:
【C++ 调试技巧:如何快速确定推导出来的具体类型?】微信公众号-everystep
注意,变量a被括号括起来和不括起来,类型的区别,一个是int&,一个是int
template<typename T>
class TypeDisplayer;
int main()
{
auto a = 10;
auto b = &a;
TypeDisplayer<decltype(a)> aType;
TypeDisplayer<decltype((a))> aType;
TypeDisplayer<decltype(b)> bType;
}
输出:
error C2079: “aType”使用未定义的 class“TypeDisplayer<int>”
error C2079: “bType”使用未定义的 class“TypeDisplayer<int &>”
error C2079: “cType”使用未定义的 class“TypeDisplayer<int *>”