[C++] 同じクラスに複数の名前空間を設定する:typedefを利用

2016 年 4 月 5 日 Categories: C++ |

namespace abc {
	namespace bcd {
		class A {
 
		};
	}
}
 
namespace simple {
	typedef abc::bcd::A B;
}
 
int main() {
	// your code goes here
	new simple::B;
	return 0;
}

注意点

typedefで指定したクラスの前方宣言をする場合、元のクラスの前方宣言を先にする必要がある。

つまり、通常の名前空間の宣言をくり返す。

// A.hpp
namespace abc {
	namespace bcd {
		class A;
	}
}
 
namespace simple {
	typedef abc::bcd::A B;
}

# コンパイルしてみる(ideone.com