c++ - 获取模板类的类型

标签 c++ class function templates

有没有办法获取模板类的类型,例如

//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);

关于c++ - 获取模板类的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1053456/

相关文章:

javascript - 将函数参数传递到 getElementById "id"

c++ - 在 C++11 中对数组进行简单范围管理的最干净的方法是什么

c++ - 我是否需要保护对仅在同一线程中修改的变量的读取?

PHP - 使用表中的 MySQL 数据填充显示输入数据

function - 在 gnuplot 中拟合分段函数

mysql - 分割逗号分隔的字符串 --> FUNCTION db.CHARINDEX 不存在

c++ - 如何将 DirectX 库包含到我自己的静态库(独立库)中?

c++ - 调用 LockFileEx() 时访问冲突

Python:使用 YAML 自动创建类方法

python - JSON 到 Python 对象