奇怪的 C++ 语法:用一些值设置函数输出
Strange C++ syntax: setting function output with some value
我正在尝试 pybind11 和 运行,我 运行 跨越了一些 st运行ge 语法:
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; // optional module docstring
m.attr("the_answer") = 42;
m.def("add", &add, "A function which adds two numbers");
}
我认为 PYBIND11_MODULE
是一个宏,pybind11 应该执行代码块内的所有内容以设置 Python 模块。但是,m.doc() = ...
和 m.attr("the_answer") = 42
处的语法看起来 st运行ge。虽然代码确实可以在我的机器上编译。我的问题是,它们是什么,它们有名字吗?
它正在返回对对象的引用。检查这个例子:
class A {
private:
int var;
public:
int& internal_var() { return var; }
};
...
A a;
a.internal_var() = 1;
我正在尝试 pybind11 和 运行,我 运行 跨越了一些 st运行ge 语法:
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; // optional module docstring
m.attr("the_answer") = 42;
m.def("add", &add, "A function which adds two numbers");
}
我认为 PYBIND11_MODULE
是一个宏,pybind11 应该执行代码块内的所有内容以设置 Python 模块。但是,m.doc() = ...
和 m.attr("the_answer") = 42
处的语法看起来 st运行ge。虽然代码确实可以在我的机器上编译。我的问题是,它们是什么,它们有名字吗?
它正在返回对对象的引用。检查这个例子:
class A {
private:
int var;
public:
int& internal_var() { return var; }
};
...
A a;
a.internal_var() = 1;