【发布时间】:2010-05-22 12:52:49
【问题描述】:
假设我正在编写一个具有类型参数 T 的模板函数 foo。它获取一个类型为 T 的对象,该对象必须具有方法 bar()。在 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++ 中都可以使用的代码?
【问题讨论】:
标签: c++ visual-c++ templates typeof