C++11 中的用户定义属性?
User-defined attributes in C++11?
有没有办法在 C++11 或更高版本中创建用户定义的属性?
例如,
[[noreturn]] void exit();
是编译器定义的 C++11 属性。
我想定义如下内容:
[[comingsoon]] int function(int);
有这方面的机制吗?
编辑:我应该提到我正在使用 Clang。
该语言没有提供添加属性的方法。
当然,如果您使用的是 Clang,则可以编辑 Clang 的源代码,并添加您喜欢的任何属性。
目前无法定义用户属性。
据我所知,没有关于是否计划此功能的信息。
但是,请查看 Stroustrup 的常见问题解答:https://isocpp.org/wiki/faq/cpp11-language-misc#attributes,尤其是这一部分:
One planned use for attributes is improved support for OpenMP. For example:
for [ [ omp::parallel() ] ] (int i=0; i<v.size(); ++i) {
// ...
}
这可能意味着他们计划允许程序员定义它自己的属性。拭目以待。
有没有办法在 C++11 或更高版本中创建用户定义的属性?
例如,
[[noreturn]] void exit();
是编译器定义的 C++11 属性。
我想定义如下内容:
[[comingsoon]] int function(int);
有这方面的机制吗?
编辑:我应该提到我正在使用 Clang。
该语言没有提供添加属性的方法。
当然,如果您使用的是 Clang,则可以编辑 Clang 的源代码,并添加您喜欢的任何属性。
目前无法定义用户属性。
据我所知,没有关于是否计划此功能的信息。 但是,请查看 Stroustrup 的常见问题解答:https://isocpp.org/wiki/faq/cpp11-language-misc#attributes,尤其是这一部分:
One planned use for attributes is improved support for OpenMP. For example:
for [ [ omp::parallel() ] ] (int i=0; i<v.size(); ++i) {
// ...
}
这可能意味着他们计划允许程序员定义它自己的属性。拭目以待。