boostorg / boostorg/python

no_init/compiler-generated constructor on struct causes segfault

オープン
#120 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
537
フォーク
223
平均マージ
11時間 22分
マージ済み PR(30日)
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 を短くまとめたダイジェスト。