如何将表达式转换/评估为变量

时间:2019-05-07 14:03:29

标签: c++

如果有字符串:

std::string a = "{0.0, 1.0, 2.0, 3.0}";

如何将其转换为b(double *)a?像这样:

double *b = {0.0, 1.0, 2.0, 3.0};

我正在寻找一些提供文字评估的功能,而不是循环访问字符串等内容。

1 个答案:

答案 0 :(得分:4)

在C ++中没有等效的内置eval()。造成这种情况的原因很多,但最简单的是C ++是一种编译语言。因此,代码是由编译器而不是运行时解析的。为了添加类似eval()的函数,在运行时还需要包含解析器,这将大大增加其大小。

如果您实际上需要解析有效的C ++表达式,可以使用一些库来实现。