【问题标题】:Pybind11: binding anonymous enumPybind11:绑定匿名枚举
【发布时间】:2021-07-14 17:33:56
【问题描述】:

我有以下结构:

struct DataStruct {
  enum { ID = importantData };
  int data1;
  int data2;
}

我将如何绑定匿名枚举?我在下面有我当前的绑定,但到目前为止我只是跳过枚举。

py::class_<DataStruct>(m, "DataStruct")
  .def(py::init<>())
  .def_readwrite("data1", &DataStruct::data1)
  .def_readwrite("data2", &DataStruct::data2);

请注意,此结构将用作也通过 pybind11 绑定到 python 的函数的输入,因此目标更重要的是能够在 Python 中创建对象,然后将其传递给绑定在 python 中的 C++ 函数,而不是就是严格阅读struct的内容。

【问题讨论】:

    标签: c++ struct enums pybind11


    【解决方案1】:

    根据docs,将其定义为:

    py::class_<DataStruct> data_struct(m, "DataStruct");
    
    data_struct.def(py::init<>())
        .def_readwrite("data1", &DataStruct::data1)
        .def_readwrite("data2", &DataStruct::data2);
    
    py::enum_<DataStruct::DataStructEnum>(data_struct, "DataStructEnum")
        .value("ID", DataStruct::DataStructEnum::ID)
        .export_values();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      相关资源
      最近更新 更多