使用C++ 11属性

inn*_*nti 17 c++ attributes c++11

你能解释一下如何从C++中的属性中获取信息吗?例如,我想将C++编写为python绑定.为此,我需要使用一些特定的绑定信息来注释类中的所有方法.现在我需要按属性生成一些代码.或者另一个例子,将类映射到db实体.或者C++ 11属性与Java或C#注释不同?

R. *_*des 19

属性(新的C++ 11特性)只是编译器扩展的标准化语法.要做你想做的事,你需要一个带有适当扩展的编译器.到目前为止,我认为任何编译器都不会实现属性语法,更不用说Python绑定的任何特定属性了.

因为它们用于编译器扩展,所以没有标准的方法来创建自己的属性,就像使用Java注释或C#属性一样.当然,编译器可以提供此功能作为扩展...;)


Tom*_*Tom 5

更新了一些最新信息:

GCC 现在(从 4.8 开始)实现 C++11 属性作为__attribute__((XXX)).

您还可以使用 GCC 插件机制来定义新属性 - 请参阅https://gcc.gnu.org/onlinedocs/gccint/Plugins.html

您还可以使用 gcc-python-plugin 在 python 中执行此操作 - 请参阅https://gcc-python-plugin.readthedocs.org/en/latest/attributes.html