boostorg / boostorg/python

no_init/compiler-generated constructor on struct causes segfault

未关闭
#120 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
537
派生
223
平均合并
11 小时 22 分钟
30 天内合并 PR
2

描述

If I compile the following extension, then as soon as I load it into a Python script I get a `Segmentation fault (core dumped)`. The cause seems to be the `no_init` on class Bar. I'd be grateful for any help.

```
#include

using namespace std;
using namespace boost::python;

struct Bar {
string x;
};

BOOST_PYTHON_MODULE (libtest_python) {
class_("Bar", no_init)
.def_readonly("x", &Bar::x);
}
```

The reason for using the `no_init` is that `init()` doesn't pick up the compiler-generated constructor. If I write my own constructor and use `init()`, it loads fine. (But I'm wrapping code that I can't modify, and the struct constructor is compiler generated.)

Using Windows/Cygwin, gcc 5.4.0, python 2.7 and Boost 1.60.0, all installed via Cygwin rather than windows.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。