例如,是否有一种方法可以获取模板类的类型
//i have template function
template<typename T>
IData* createData();
//a template class instance
std::vector<int> a;
//using type of this instance in another template
//part in quotation mark is imaginary of course :D
IData* newData = createData<"typeOf(a)">();
在c++中有可能吗?还是有捷径替代品
最佳答案
是-使用boost::typeof
IData* newData = createData<typeof(a)>();
新标准(
C++0x
)将为此提供一种内置方式。请注意,您可以给
createData
一个伪参数,编译器可以使用该伪参数来推断类型。template<typename T>
IData* createData(const T& dummy);
IData* newData = createData(a);