【发布时间】:2015-08-08 01:33:32
【问题描述】:
现在,我正在尝试用 C++ 创建一个原型动态类型系统,以回答有关 Stack Overflow 的另一个问题。
但是,我想知道如何才能从变体中选择特定类型。
我想要的基本上是一个将键直接转换为类型的函数,然后让程序根据该类型文字构造一个类型。
我想要什么(伪代码):
std::string type;
TYPE get_type(std::string) { ... }
get_type(type) new_variable();
【问题讨论】:
-
@Galik 我不确定,但我倾向于说不,因为我认为 C++ 中没有
eval()等价物,因此如果您不能动态评估,则允许可变字符串文字运算符毫无意义运行时的 C++ 代码。 -
返回(编译时)类型不能依赖于 std::string 的(运行时)值。
-
@Jarod42 我只是想知道是否可以缩小运行时变体。
-
您一直在指变体,但该术语通常用于指代可区分联合的管理对象,因此单个编译时对象可以在运行时有效存储多种类型中的任何一种,我不'看不出这与您的问题或示例代码有何关系。如果您只是说您希望 get_type 适用于多种类型,为什么不使用模板专业化来列出映射?很容易。
标签: c++ type-conversion dynamic-typing static-typing