假设我正在编写一个具有类型参数T的模板函数foo。它获取了一个必须具有方法bar()的类型为T的对象。并且在foo中,我想创建一个由bar返回的类型对象的向量。声明模板函数中依赖于未知类型的变量
在GNU C++我可以写这样的事情:
template<typename T>
void foo(T x) {
std::vector<__typeof(x.bar())> v;
v.push_back(x.bar());
v.push_back(x.bar());
v.push_back(x.bar());
std::cout << v.size() << std::endl;
}
如何做到在Microsoft Visual C同样的事情++?有什么方法可以编写这个在GNU C++和Visual C++中都可用的代码吗?
现在,这只是错误的。是的,我知道;这是正确的”。但它仍然是错误的。我想我需要躺下一分钟。 – 2010-05-22 13:11:24
@Marcelo,有条件的爱情在其他场合也证明是有用的。看到[这一个](http://stackoverflow.com/questions/1353757/how-do-i-refer-to-stdsinconst-valarraydouble) – 2010-05-22 13:26:17
我的头痛以某种好方式...这是一个幽灵般的东西好吧!如果我没有记错,C++ 0x是不是应该为我们提供一个好东西? – 2010-05-22 14:08:01