如何结合python和C++;17关于macOS 我目前正在研究一个在MaCOS上结合C++和Python的项目,所以在某个时候,我的代码包含了系统Python报头: #包括

如何结合python和C++;17关于macOS 我目前正在研究一个在MaCOS上结合C++和Python的项目,所以在某个时候,我的代码包含了系统Python报头: #包括,python,macos,c++17,Python,Macos,C++17,我想切换到C++17,但是Python.h包含的其中一个头(unicodeobject.h)仍然使用register关键字,该关键字在C++17中被删除,在C++11中被弃用 在这种情况下,对于是否以及如何迁移到C++17有什么建议吗?您可以使用 #define register 在包含之前,先定义寄存器宏以将其展开为零。或者,您可以使用命令行选项-Dregister= 严格地说,C++标准的现代版本使得使用预处理器来定义标准关键字的含义是无效的,但是编译器可能会接受它(或至多给出警告)。 #

我想切换到C++17,但是
Python.h
包含的其中一个头(
unicodeobject.h
)仍然使用
register
关键字,该关键字在C++17中被删除,在C++11中被弃用

在这种情况下,对于是否以及如何迁移到C++17有什么建议吗?

您可以使用

#define register
在包含
之前,先定义
寄存器
宏以将其展开为零。或者,您可以使用命令行选项
-Dregister=

严格地说,C++标准的现代版本使得使用预处理器来定义标准关键字的含义是无效的,但是编译器可能会接受它(或至多给出警告)。

#define register
在包含
之前,先定义
寄存器
宏以将其展开为零。或者,您可以使用命令行选项
-Dregister=


严格地说,C++标准的现代版本使得使用预处理器来定义标准关键字的含义是无效的,但是编译器可能会接受它(或者最多,给出警告)。

这是有效的,但是我希望有一种方法来避免预处理器“HACK”的工作,但我希望有办法避免预处理器“黑客”