【问题标题】:Can main() and its parameters have attributes?main() 及其参数可以有属性吗?
【发布时间】:2017-10-08 17:19:57
【问题描述】:

在标准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 ... */ }

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 弃用的 main 让我很开心
    • @PasserBy 这是老派。现代程序员编写的代码在静态初始化中完成。
    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2016-08-21
    • 1970-01-01
    • 2023-03-25
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多