我正在使用脚本引擎,我希望能够做这样或类似的事情:
const char* script = SOME_MACRO(
function foo() {
print "bar";
}
foo();
)
OS* engine = OS::create();
engine->eval(script);
实现这一目标的好方法是什么?
我知道对于多行宏,我需要在行尾添加\
,如果可能的话,我想避免使用一堆带引号的字符串,因为我的脚本可能也会引用字符串,而id就像保留行号一样。
有没有好办法呢?
答案 0 :(得分:3)
您不需要宏。您可以使用原始字符串文字。
const char* script = R"SCRIPT_DELIMITER(
function foo() {
print "bar";
}
foo();
)SCRIPT_DELIMITER";
您可以将SCRIPT_DELIMITER
替换为您想要的任何分隔符,最多16个字符,不带括号,反斜杠或空格,并且序列)YOUR_DELIMITER"
不能出现在您的字符串中(因为它用于终止它。)