Betrachten Sie das folgende Programm zu definieren. Ist es gut ausgebildet oder nicht, gemäß dem C++ Standard (Verweise auf relevante Teile der Norm erforderlich):Versuch Namespace Mitglied über using-Deklaration
namespace X { extern int i; }
namespace N { using X::i; }
int N::i = 1;
int main() {}
ich unterschiedliche Ergebnisse für verschiedene Compiler bin immer. Ich versuche, für herauszufinden, was Compiler ich sollte einen Fehlerbericht für Datei:
Clang: Gibt den folgenden Compiler-Fehler: Kein Mitglied namens 'i' im Namensraum 'N'
GCC und Visual C++ kompiliert es ohne Fehler.
Zum Vergleich gibt die folgende Compiler-Fehler mit allen drei Compiler:
namespace X { void f(); }
namespace N { using X::f; }
void N::f() {};
int main() {}
Lustig, VS2013 kompiliert, aber IntelliSence sagt '" Fehler: Namespace "N" hat kein Mitglied "i" ' – AlexD
Ich denke, die Antwort ist hier: [link] (http://stackoverflow.com/questions/6175705/scope of using-Deklaration-im-Namespace) – Jorj
@Supremum Sie können Ihre eigene Kopie des C++ Standard lesen bei https://isocpp.org/std/the-standard bekommen – Coder