C++相談室 part19
■ このスレッドは過去ログ倉庫に格納されています
0662デフォルトの名無しさん
NGNGnamespace HOKJELKDSLKHLKFJHLEBIFBSDIF {
class X { public: int x; X() : x(0) { } };
}
という名前空間とクラスがあったとします。
この X を使いたい場合に、この長たらしい名前空間を何度も書きたくないので
namespace A {
using namespace HOKJELKDSLKHLKFJHLEBIFBSDIF;
void foo(X x);
}
と、「ヘッダファイル内に」書いたとします。
すると、
int main() {
A::X x;
A::foo(x);
}
のように、仕様上 A::X として使えるようになってしまいます。
エイリアスを使っても、そのエイリアスが外部で使えてしまいます。
A の名前空間を通じて X を参照できないようにし、
なおかつ foo の X などであの長い名前空間を使えないようにする方法って
何かないんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています