一部の関数の外部名前空間名を最上位階層の他の名前空間から省略することはできますか?他の名前空間内の名前空間からの関数の使用
void sample_func();
namespace foo {
void first_func();
namespace bar {
void second_func();
void sample_func();
}
すべてがfirst_func()
のために簡単です:ちょうどusing foo::bar::second_func;
はsecond_func();
using foo::first_func;
を入力すると、私は任意の接頭辞なし
second_func
を呼び出したい場合は
fist_func();
すべてがシンプルで同じようにそれを呼び出すことができます
しかし、それをbar::second_func();
と呼ぶ方法はありますか?コードの可読性が向上します。入力すると、foo::bar::sample_func
ではなく、bar::sample_func
のようなものが表示され、名前の混乱はありません。明らかに、using namespace foo::bar
はオプションではありません。
UPDは、私は、全体のfoo
またはbar
名前空間をインポートすることに興味を持っていないです(つまりusing namespace ...
指令!私は彼らからちょうどいくつかの機能を必要としています。namespace::
または::
と
これは 'using namespace ...'が必要です。 e。名前が混同されているグローバル名前空間のすべての関数の先頭に '::'を付ける必要があります。私は、 'foo'と' bar'から広範囲に使用される関数のサブセットをすべての名前空間を公開することなく必要とします。 – avtomaton