次のプログラムは、C++ 標準に従って整形式ですか、それとも整形式ではありませんか?
namespace X { int i; }
namespace Y { using X::i; }
int main() { using X::i; using Y::i; }
さまざまなコンパイラでさまざまな結果が得られます。
- MSVS: コンパイル ( http://webcompiler.cloudapp.net/ )
- Clang: コンパイル ( http://melpon.org/wandbox/permlink/KloDufJ5h1DalK4v )
- GCC: コンパイル エラー ( http://melpon.org/wandbox/permlink/IKuuQGE1THofuUTr )
このプログラムを GCC でコンパイルできるように修正したくありません。これについて C++ 標準が何を述べているのか、および 3 つのコンパイラの動作が異なる理由を知りたいだけです。また、これがこれらのコンパイラのいずれかのバグの結果であるかどうかも知りたいです。