typeof(x)作为模板参数?

bec*_*cko 3 c++ templates auto

我有一个变量x,声明为:

auto x = f(y);
Run Code Online (Sandbox Code Playgroud)

f函数和y变量在哪里,都在其他地方定义.现在我想声明一个std::vector类型的保持元素x,所以我写道:

std::vector<typeof(x)> v;
Run Code Online (Sandbox Code Playgroud)

这会导致编译器错误.一个解决办法是把这里的明确说法x,但我认为这违背了目的autox的宣言!那么如何在x不明确编写类型的情况下使用类型作为模板参数(这样在类型更改时,我的代码仍然有效).

Dim*_*htz 7

只有GNU编译器才有typeof.相反,使用decltype哪个是c ++ 11功能.