typeof(x)作为模板参数

typeof(x) as a template argument?

本文关键字:参数 typeof      更新时间:2023-10-16

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

auto x = f(y);

其中f是函数,y是变量,两者都在其他地方定义。现在我想声明一个std::vector,它包含x类型的元素,所以我写:

std::vector<typeof(x)> v;

这会导致编译器错误。一个解决方案是在这里放置x的显式参数,但我认为这违背了x声明中auto的目的!那么,我如何使用x的类型作为模板参数,而不显式地编写类型(这样在类型更改时,我的代码仍然有效)。

只有GNU编译器具有typeof。相反,使用decltype,这是一个c++11特性。