2012-12-31 12 views
8
namespace CounterNameSpace { 
    int upperbound; 
    int lowerbound; 
    using namespace NS;//Error 
} 
namespace NS { 
int i; 
} 
// ... 
namespace NS { 
int j; 
} 

Im obigen Fall wird ein Fehler angezeigt. Fehler C2871: 'NS': ein Namespace mit diesem Namen existiert nicht Ich weiß, wenn ich NS vorher cornernamespace Problem wird gelöst werden. Aber ich möchte nur wissen, ob etwas wie Vorwärtsdeklaration von Namespaces in C++ existiert oder nicht. So dass das obige Problem gelöst wird, ohne NS vor dem Gegenraum zu definieren. bitte helfen.Forward-Deklaration des Namensraums

+0

@ user1872084 :: Der obige Link bezieht sich auf die Vorwärtsdeklaration der Klasse. – Kenta

Antwort

11

Nichts sagt ein Namespace alle Inhalte muss sofort:

namespace NS {} 
namespace CounterNameSpace { 
    int upperbound; 
    int lowerbound; 
    using namespace NS; 
} 
namespace NS { 
int i; 
} 

Allerdings könnte dies nicht tun, was Sie wollen. Sie können immer noch keinen der Typen in diesem Namespace verwenden, bis Sie sie deklariert haben.

Verwandte Themen