是否可以将原始字符串转换为c ++中的代码?
例如我有一个字符串
string s = "cout << "Hello World";";
我想以编程方式生成该代码。也许我想动态地在程序的各个部分插入该代码。
cout << "Hello World";
此外,是否可以使用c ++中的循环生成代码,可能使用预处理器指令?
答案 0 :(得分:4)
看起来你想要的东西类似于Lisp,Python,perl和许多其他语言提供的eval
函数。
C ++中没有这样的功能。它在设计上并不存在。
解决这个缺失功能的一种方法是让程序编写程序,将其存储在文件中,调用编译器,并调用编译器生成的可执行文件。那很难看。你做的任何事都会变得相当难看。
答案 1 :(得分:2)
是否可以将原始字符串转换为c ++中的代码?
C ++通常是一种编译语言。这使得你想要做的事情变得棘手。为了实现您所说的内容,您需要在运行时解释代码(在这种情况下,通过绑定到Python或Lua等脚本语言可以更好地服务),或者嵌入或调用C ++编译器并将代码传递给它,然后运行它。
这可能是XY problem,并且您正在查看的解决方案对于您尝试解决的实际根问题过于复杂。可能有一个想法是建立一个为什么你正在尝试这样做的描述,因为可能有一种更简单的方法来实现你想要的最终结果。