[英]“Evaluate function” in C++
我想知道在C ++中是否存在像Matlab这样的“求值”函数。
实际上,我需要一个可以像命令行一样解释字符串的函数。
感谢您的回答。
如果您实际上是试图在运行中的C ++应用程序中“评估” C ++源代码,则基本上没有-这不是该语言指定的功能。
有C ++子集的解释器 (例如CInt,Ch和UnderC)-如果它是一个相对简单的程序,它们也许可以运行您的C ++程序。 或者,可以将某些代码嵌入已编译的C ++程序中,以允许对某些运行时源代码进行评估,但是访问和更改预编译代码及其变量的能力有限。
一个正在运行的程序也有可能调用编译器并动态加载/链接结果库,但这是非常不寻常的实践,并且不存在性能,安全性和互操作性问题:
system()
, exec()
, unlink()
调用,滥用网络连接,咀嚼不必要的CPU /内存/描述符等语句。 如果您实际上需要更多限制的东西,例如评估可能以C ++格式表示的数学表达式或逻辑谓词的能力,也许是读取或设置某些值,那么可以使用各种更有限和专门的库以及嵌入式解释器。 甚至还有用于创建此类解析器的库,例如boost spirit库。
最后,用于其他语言的解释器(Lua,Ruby,Python,Perl,TCL等)可以嵌入C ++应用程序中,采用各种实现互操作性和安全性的方法。
您可以使用system()
: http : //linux.die.net/man/3/system
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.