は、私がboost::join
としてboost::algorithm::join
を呼び出したいことを考えてみましょうが、私のようにグローバル名前空間にサブ名前空間をインポートしない:私はboost::join
を呼び出したいので名前空間エイリアス
namespace boost {
using algorithm::boost;
};
のみ特定の機能のローカルスコープ内のその構文は:
void my_fun()
{
namespace boost { // Doesn't allowed syntax in local scope
using algorithm::join;
}
auto ret = boost::join(something...);
}
別のアプローチは次のようになります
void my_fun()
{
using boost::algorithm::join;
auto ret = join(something...);
}
しかし、これはADLルックアップを引き起こし、私はどのメソッドを呼び出しているか知っているので、そのようなルックアップをしたくありません。boost::algorithm::join
。
私は、それを呼び出す方法がより短いboost::join
を見つけることを試みています。 「サブネームスペース」エイリアスを作成するための正しい構文やイディオムは何ですか?
[名前空間エイリアス](http://en.cppreference.com/w/cpp/language/namespace_alias)を使用できるような音 – NathanOliver
他の人の名前空間を混乱させないでください。あなた自身の 'namespace boost_misc'やそれを呼びたいものを作ることができますが、' namespace boost'に名前を追加しないでください。 –
私はあなたがADLに対して持っていることを理解していませんか?とにかく、コンパイル時にのみ実行時に起こることではありません。これはあなたが持っている問題に対する非常に簡単な解決策です。 –