c++c++14c++-attributes

How are unknown attributes supposed to be treated before C++17?


cppreference says that

All attributes unknown to an implementation are ignored without causing an error.

... but that this edict was introduced in C++17. What about earlier versions of C++? Are unknown attributes supposed to be errors? Is it implementation-defined what to do with them?


Solution

  • It was implementation-defined since its introduction in C++11.

    See [dcl.attr.grammar]/5:

    For an attribute-token not specified in this International Standard, the behavior is implementation-defined.