Является ли следующая программа хорошо сформированной или плохо сформированной в соответствии со стандартом С++?
namespace X { int i; }
namespace Y { using X::i; }
int main() { using X::i; using Y::i; }
Я получаю разные результаты с разными компиляторами:
- MSVS: компиляции (http://webcompiler.cloudapp.net/)
- Clang: Compiles (http://melpon.org/wandbox/permlink/KloDufJ5h1DalK4v)
- GCC: ошибка компиляции (http://melpon.org/wandbox/permlink/IKuuQGE1THofuUTr)
Я не хочу исправлять эту программу, чтобы она скомпилировалась на GCC. Я просто хочу знать, что говорит об этом стандарт С++ и почему три компилятора ведут себя по-разному. Также я хочу, чтобы это было результатом ошибки в любом из этих компиляторов.