正如标题所示,我试图使用 decltype 来获取模板的类型。我尝试的方法是:
template<typename T> class List
{
....
public:
typedef T type;
....
};
主程序
int main(int argc, char* argv[])
{
List<int> intl;
decltype(intl)::type t; // compiler doesnt try to access the decltype's members but reverts to global namespace (as if i had typed :: on a new line
}
我的印象是 decltype 返回一个类型,就好像你乱写它一样(在代码中也称为“int”)。不是这样吗?
另外,还有其他方法可以从模板类中获取类型名 T 吗?
提前致谢。
扩展:
List<int> intl;
typedef decltype(intl) listtype;
listtype::type i;
我是一个无符号整数……我很困惑
好的,找到了。1 中的 WOO 2 编译器错误 :) 我有一个声明 unsigned int 的 for 循环(然后超出范围,但由于某种原因,当我稍后使用它时它仍然是 unsigned int