boostorg / boostorg/python

Division assignment operator (/=) is not exported properly to Python3

Offen
#317 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
537
Forks
223
Ø Merge
11 Std. 22 Min.
Gemergte PRs (30 T.)
2

Beschreibung

The minimal example I have is for g++8.3.0 and boost1.67 on Ubuntu19.04 (although I have tested boost1.74 on a CentOS7.8 platform).

My understanding of the issue is that when the operator "/=" is exported for Python3, it is binded to \_\_idiv__ and not \_\_itruediv__, therefore causing a crash upon runtime. For Python2, there is no problem observed.

The problem solved by explicitly doing .def("\_\_itruediv__", &Foo::operator/=). Is this a desired behaviour?

PS:
Compiling on Ubuntu19.04 as:
g++ foo.cpp -Wall -Wextra -shared -fPIC -o myModule.so -Wfatal-errors -I/usr/include/python3.7 -lboost_python3 (boost1.67 library and boost1.67-dev installed from packages).

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.