Ist es möglich, den Namen eines äußeren Namespace für einige Funktionen aus einem anderen Namespace in der obersten Ebene wegzulassen?Verwenden von Funktionen aus dem Namespace in einem anderen Namespace
void sample_func();
namespace foo {
void first_func();
namespace bar {
void second_func();
void sample_func();
}
Alles für first_func()
trivial ist: nur die Eingabe using foo::first_func;
erlaubt es zu nennen wie fist_func();
Alles ist einfach, wenn ich second_func
ohne Präfix nennen wollen: nur using foo::bar::second_func;
erlaubt es zu nennen wie second_func();
Aber gibt es eine Möglichkeit, es als bar::second_func();
zu nennen? Es wird Code Lesbarkeit erhöhen - viel besser zu tippen und etwas wie bar::sample_func
anstelle von vollen foo::bar::sample_func
ohne Namen Verwirrung sehen: offensichtlich using namespace foo::bar
ist in diesem Fall keine Option.
UPD Ich bin nicht daran interessiert, die ganzen foo
oder bar
Namespace in dem Import (dh using namespace ...
Direktive! Ich brauche von ihnen einige Funktionen nur.
Es erfordert 'using namespace ...', i. e. Jede Funktion aus dem globalen Namespace mit verwechseltem Namen sollte mit '::' vorangestellt sein. Ich brauche nur ein paar extensiv genutzte Funktionen aus 'foo' und' bar', ohne den gesamten Namespace freizulegen. – avtomaton