gpt4 book ai didi

c++ - boost::python 长/结构化文档字符串

转载 作者:行者123 更新时间:2023-11-30 04:15:22 27 4
gpt4 key购买 nike

我有一个为 python 暴露而包装的 c++ 函数。为此,我使用 boost::python。同样,我希望有一个结构化的篡改,看起来非常像

    some text here.....

Parameters:
p1 ...
p2 ...
p3 ...

Returns:
R1 ...

现在,我的问题是,当我将上面的内容放在文档字符串占位符中时

     def("wrapFunName", cppFunc, "PLACEHOLDER") 

编译器 (clang) 向我抛出一个错误,即 missing terminating ' "' character。这是否意味着我不能用 booth::python 包装冗长的篡改,我必须连续编写它?我认为 c++/c 将永远是自由形式的语言 :(。

提前致谢

尼基尔

最佳答案

请记住,虽然您正在编写要从 Python 中使用的代码,但您仍在编写 C++,因此您受 C++ 语法规则的约束。 C++ 不允许以与 Python 完全相同的方式使用多行字符串文字。特别是,它不允许在字符串中使用裸换行符,因此当编译器到达行尾而没有找到字符串的结尾时,它会正确地提示,正如您所观察到的那样。

您可以使用 several techniques for getting multiline strings in your C++ code 中的任何一个.例如,您可以使用 \n 显式插入换行符,也可以在每行末尾使用 \ 转义换行符。这些技术以及更多技术在链接问题的答案中得到了展示。

这是第一种方法的示例。请注意每行末尾的 \n。 C++ 自动将连续引用的字符串文字连接成一个值,这就是行与行之间没有运算符的原因。

def("wrapFunName", cppFunc,
"some text here.....\n"
"\n"
"Parameters:\n"
"p1 ...\n"
"p2 ...\n"
"p3 ...\n"
"\n"
"Returns:\n"
"R1 ...")

关于c++ - boost::python 长/结构化文档字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com