matplotlib-cpp icon indicating copy to clipboard operation
matplotlib-cpp copied to clipboard

solved PyType_Slot *slots; bug in Python.h include command

Open shrita2000 opened this issue 2 years ago • 1 comments

Compiling a project using this library sometimes throws the following error: "expected unqualified-id before ‘;’ token 190 | PyType_Slot *slots; " Since Qt uses slots as a reserved keyword there is a clash with the declaration of the slots member of the PyType_Slot struct in Python.h. To avoid the conflict regarding 'slots', without the need for deactivating the keywords signals/slots/emit (which may be undesirable for large Qt projects), the code edit locally "parks" the offending keyword while Python.h is included, and then reassigns it.

shrita2000 avatar Apr 06 '23 05:04 shrita2000

For anyone wondering who stumbled upon this issue like I did, here is how you would "park" the definition of "slots":

#pragma push_macro("slots")
#undef slots
#include <Python.h>
#pragma pop_macro("slots")

alex-miftek avatar Nov 21 '24 15:11 alex-miftek