Qub*_*euc 1 c++ templates class function
例如,有没有办法获取模板类的类型
//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)">();
Run Code Online (Sandbox Code Playgroud)
在c ++中有可能吗?还是有一个捷径替代品
是的 - 使用boost :: typeof
IData* newData = createData<typeof(a)>();
Run Code Online (Sandbox Code Playgroud)
新标准(C++0x)将为此提供内置方式.
请注意,您可以提供createData一个伪参数,编译器可以使用该参数来推断类型.
template<typename T>
IData* createData(const T& dummy);
IData* newData = createData(a);
Run Code Online (Sandbox Code Playgroud)