2017-05-10 15 views
3

標準C++では、main関数とそのパラメータに属性がありますか?main()とそのパラメータには属性がありますか?

たとえば、これは法的に以下のとおりですか?

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

または

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

答えて

4

ような何かはい、それは合法です。これを防ぐために、C++標準([basic.start.main][dcl.attr]、または他の場所)には言葉遣いがありません。必要に応じてmain()[[deprecated]]とマークすることもできます。

+2

廃止されたメインメイド私の一日 –

+2

@PasserBy古い学校です。現代のプログラマは、静的初期化で実行を終了するコードを記述します。 – Yakk

関連する問題