標準不允許這樣的代碼:C++中不允許嵌套名稱空間聲明的具體原因嗎?
namespace Hello::World {
//Things that are in namespace Hello::World
}
,而是需要
namespace Hello { namespace World {
//Things that are in namespace Hello::World
}}
是什麼道理呢?這在當時根本沒有想到,還是有沒有包含它的特定原因?
看起來第一個語法更直接地表達了其中應該是哪個名稱空間,因爲該聲明模仿了後面代碼中名稱空間的實際使用。如果您不幸使用「啞」支架計數壓痕工具,它也會導致較少的縮進。
我的一個想法就是這類的班級裏面的東西似的聲明。我想知道是否會有一些奇怪的角落指定一個類命名空間與命名空間命名空間,這將會被您提出的語法所破壞。 – Omnifarious 2010-08-30 19:22:54
[C++中的多個名稱空間聲明]可能的重複(http://stackoverflow.com/questions/3589204/multiple-namespace-declaration-in-c) – AnT 2010-08-30 19:25:57
@AndreyT:我不問它是否合法,我知道這是非法的。我問**爲什麼**這是非法的。 – 2010-08-30 19:26:46