main()及其参数可以有属性吗?

时间:2017-05-10 07:26:50

标签: c++ c++11 attributes main

在标准C ++中,main函数及其参数是否具有属性?

例如,这是合法的吗?

[[noreturn]] int main() { std::abort(); }

或类似

[[nodiscard, carries_dependency]]
int main(int argc [[maybe_unused]],
         char * argv [[carries_dependency, maybe_unused]] [])
{ /* ... function body omitted ... */ }

1 个答案:

答案 0 :(得分:4)

是的,这是合法的。 C ++标准中没有措辞(在[basic.start.main][dcl.attr]或其他地方)以防止任何此类措施。如果需要,甚至可以将main()标记为[[deprecated]]