16

次のプログラムを検討してください。C++ 標準に従って整形式かどうか (必要な標準の関連部分への参照):

namespace X { extern int i; }

namespace N { using X::i; }

int N::i = 1;

int main() {}

コンパイラごとに異なる結果が得られます。バグレポートを提出する必要があるコンパイラを見つけようとしています。

  • Clang: 次のコンパイラ エラーが発生します: 名前空間 'N' に 'i' という名前のメンバーがありません

  • GCC および Visual C++ は、エラーなしでコンパイルします。

比較のために、次の例では 3 つのコンパイラすべてでコンパイラ エラーが発生します。

namespace X { void f(); }

namespace N { using X::f; }

void N::f() {};

int main() {}
4

1 に答える 1