构造函数的属性语法

时间:2017-02-09 20:03:44

标签: c++ c++11

构造函数的属性说明符的正确位置是什么?该标准似乎没有以任何特殊方式区分构造函数,但正常位置导致GCC和Clang发出警告。

struct test {
    [[gnu::nonnull]] test (char * arg);     // gcc-6.3 ok, clang error.
    test [[gnu::nonnull]] (signed * arg);   // gcc/clang error
    test (unsigned * arg) [[gnu::nonnull]]; // gcc warning, clang error.
};

我将第二个用于其他功能而没有任何问题。

这是gcc和clang中的错误吗?

0 个答案:

没有答案