【发布时间】:2018-07-01 21:08:36
【问题描述】:
所以我发现各种文章和帖子说没有办法将typename 转换为string,但我还没有找到相反的。我有一个具有专业化功能的template:
template <typename T>
void foo(T sth) {}
template <>
void foo<int>(int sth) {}
...
我正在从这样构造的文件中读取数据:
int 20
double 12.492
string word
有没有办法根据文件的内容调用foo() 的正确特化?
【问题讨论】:
-
模板是编译时构造,你不能在运行时实例化或选择模板特化
-
if (std::compare(sType)=="string" {...} else if (std::compare(sType)=="int") {...} -
我明白了,我会编辑那个有意义的
-
"没有办法将 typename 转换为字符串" 也许没有标准的,但是有一些足够便携的,比如从@返回的字符串中取出名称987654328@.