名前空間を分割できるかどうか、または名前空間の定義を単一のブロックにする必要があるかどうか疑問に思っていました。私が何を意味するかを説明するには:
namespace test
{
//declare a bunch of stuff here
int a;
}
ここでは、クラスの宣言など、何か他のことを行います
class T
{
};
ここでは、上から名前空間を継続し、それを拡張します
namespace test
{
//declare a bunch of additional stuff here
int b;
T val;
}
この例では名前空間test
が 2 回使用されていますが、これはtest
2 番目の定義によって拡張されているということですか? gcc でこのように使用すると、期待どおりに動作します。test::...
単一の名前空間で定義されているかのように、すべての変数にアクセスできます。もちろんこれで規格化されているわけではないので、これで規格化されているかどうか知りたいです。
また、警告なども受けていないことに驚きました。しかし、これは、すでに使用されている名前を、知らないうちに誤って使用して拡張する可能性があることを意味しませんか?