2017-05-10 30 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

@PserserBy這是舊學校。現代程序員編寫的代碼在靜態初始化中完成執行。 – Yakk