簡體   English   中英

在c ++中,僅在全局范圍內允許使用“表達式”來初始化全局對象。 在標准中哪里可以找到?

[英]In c++, `expressions` are allowed in global scope only to initialize global objects. Where can I find this in the Standard?

下面的注釋表達式不能編譯,因為它在全局范圍內。 但是在C ++標准的哪里可以找到與此限制有關的內容? 我記得,在全局范圍內僅允許表達式初始化全局對象。 我已經研究了第5章表達式 ,但無濟於事。

#include <iostream>
//std::cout.setf(std::ios_base::hex, std::ios_base::basefield);


int main()
{
    std::cout.setf(std::ios_base::hex, std::ios_base::basefield);
} 

我相信一切都將取決於3.5程序和鏈接

1)一個程序由一個或多個鏈接在一起的翻譯單元(第2條)組成。 翻譯單元由一系列聲明組成。
翻譯單位:
聲明順序選擇

在該語法說明之后,您將找到一個聲明序列中允許的內容以及每個聲明中允許的內容。 可以看出,在翻譯單位級別不允許使用常規語句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM