boostorg / boostorg/python

nullptr as default argument results in unreported exception during import

Abierto
#60 3 comentarios 0 reacciones 0 asignados Ver en GitHub
C++-11
Lenguaje dominante
C++
Estrellas
537
Forks
223
Merge medio
11 h 22 min
PR fusionados (30 d)
2

Descripción

The code at the bottom can be compiled like so:

```
clang++ -std=c++11 -I/opt/local/include -I/opt/local/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m -shared -o foo.so nullptr_error.cpp -L/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib -lpython3.5 -L/opt/local/lib -lboost_python
```

When importing the resulting module in Python I see the following error:

```
>>> import foo
Traceback (most recent call last):
File "", line 1, in
SystemError: initialization of foo raised unreported exception
```

If I replace `nullptr` with `NULL`, then there is no error. This is with Boost 1.59 installed via MacPorts on the latest version of OS X with the latest version of Xcode.

``` c++
#include

struct Foo
{
Foo() : foo_(1) {}
void setFoo(int * foo = nullptr) { foo_ = foo ? *foo : 1; }
int getFoo() { return foo_; }
int foo_;
};

BOOST_PYTHON_MODULE(foo)
{
boost::python::class_("Foo", boost::python::init<>())
.def("setFoo", &Foo::setFoo, ( boost::python::arg("foo")=nullptr))
.def("getFoo", &Foo::getFoo)
;
}
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.