次の 2 つのソース ファイルに分割されたプログラムがあります。
たとえば .cpp
#include <iostream>
class A {
public:
A(int x) {
::std::cout << "In A(" << x << ")\n";
}
};
static A first(1);
static A second(2);
例__ main.cpp
int main(int argc, const char *argv[])
{
return 0;
}
このプログラムの出力は次のようになることが保証されていますか?
In A(1)
In A(2)
すべてのプラットフォームとコンパイラで? もしそうなら、標準のどこにこれが書かれていますか?first
名前空間を使用していて、別の名前空間に表示されていても問題はありsecond
ますか? それらが静的ではなく、匿名の名前空間を使用している場合はどうですか?