Namensräume - Was ist erlaubt?
-
Hallo,
was ist laut C++-Standard (+ 0x) erlaubt und was nicht?
Ich würde gerne folgendes machen
extern "C" { namespace { void myfunction() { }; } }extern "C" { namespace Meins { void myfunction() { }; } }extern "C" { namespace Meins { class hello { void myfunction() { }; } } }Darf ich das? Und wie müsste ich die Funktion aus C oder C++ Seite ansprechen?
Gruss,
Thomas
-
Nein, darfst du nicht. Alles innerhalb von extern "C" { } ist C-Code, soetwas wie Namespaces kann C nicht. Verwende z.B. für soetwas static.
-
Danke,
genau das hab ich mir gedacht. Kurze Frage, darf ich das extern in einem Namensraum platzieren?
namespace { extern "C" { ...
-
Ich denke schon. So ist da zumindest auf meinem System mit den cstdlib usw headern gemacht.Einfach namespace um die C fkts...