C++ 11中用户定义的属性?

oco*_*or0 9 c++ attributes c++11 clang++

有没有办法在C++ 11或更高版本中创建用户定义的属性?

例如,

[[noreturn]] void exit();
Run Code Online (Sandbox Code Playgroud)

是编译器定义的C++ 11属性.

我想定义类似的东西:

[[comingsoon]] int function(int);
Run Code Online (Sandbox Code Playgroud)

这有机制吗?

编辑:我应该提到我正在使用Clang.

Mar*_*ica 7

该语言没有提供添加属性的方法。

当然,如果您使用的是 Clang,您可以编辑Clang的源代码,并添加您喜欢的任何属性。

  • 我认为这是在谈论 C++/CLI,它是 MS 对 C++ 的扩展。重新使用标准语言的可能性很小。 (2认同)

小智 6

目前,无法定义用户属性.

据我所知,没有关于此功能是否已计划的信息.但是,请查看Stroustrup的这个FAQ答案:https://isocpp.org/wiki/faq/cpp11-language-misc#attributes,尤其是这部分:

对属性的一种计划用途是改进对OpenMP的支持.例如:

for [ [ omp::parallel() ] ] (int i=0; i<v.size(); ++i) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这可能意味着他们计划允许程序员定义它自己的属性.等着看.