标题说明了这一点,看看我的最小示例:
template<class ptr_to_t>
void f(ptr_to_t x) {
typedef ptr_to_t t; // does not compile
t elem = *x;
}
int main()
{
int five = 5;
f<int*>(&five);
return 0;
}
编译如下:
g++ -Wall typedef.cpp -o typedef
这不编译。我想要的是更改标记的行(第 3 行),使其t
具有类型int
(在此实例中)。
- 在 C++11 中可以使用这样的 typedef 吗?
- 在“旧”C++ 中可以使用这种类型定义吗?
注意:我想这是重复的,但我真的无法在任何地方找到这个问题。