什么是类型字符串(模板元编程),它有什么作用?

时间:2015-08-10 10:47:28

标签: c++ template-meta-programming

我已经听说过类型字符串是什么:编译时字符串,它被强制转换为定义或比较的类型。如果我的逻辑是正确的,这意味着我可以轻松地动态创建和比较类型;也许我甚至可以找到一种方法将变体缩小回具体类型。我做对了吗?

1 个答案:

答案 0 :(得分:1)

从你的描述中可以清楚地知道你是否已经做到了这一点,至少我们是在谈论类型字符串是否已经实现here

类型字符串只是编译时字符串:它们可以通过模板元编程来使用/检查。例如,您可以使用一个模板将类型级别的字符串转换为大写,并且转换将在编译时完成。

但是,您不能将任何类型字符串一般转换为它引用的类型,也不能将任何类型转换为类型字符串。例如,给定typdef typestring_is("int") int_typestring,没有通用方法从int获取类型int_typestring。反过来也不是一般的:你不能只从int_typestring类型获得int(没有办法写一个返回给定类型的类型字符串的通用模板to_type_string<T>这样它适用于所有类型的T)。