簡體   English   中英

你能在C ++中轉發聲明一個名稱空間別名嗎?

[英]Can you forward-declare a namespace alias in C++?

我想在共享頭中設置一些常見的別名,以便各個頭不必單獨聲明它。 但是我不希望在此共享頭中包含目標命名空間的頭,只聲明別名。 這可能嗎?

例如,我想要namespace GE = Graphics::Engine; 不包括任何圖形引擎標頭。

如果您事先聲明名稱空間,則可以:

namespace Graphics {
    namespace Engine {}
}
namespace GE = Graphics::Engine;

由於名稱空間在聲明后是打開的,只需...預先聲明它們:

namespace Graphics{ namespace Engine{} }
namespace GE = Graphics::Engine;

我會建議反對它。 它可以完成並且很簡單,但是您實際上正在做的是強制您在標頭的所有用戶上選擇別名。

假設您使用此技術構建組件並且通用電氣購買軟件,突然他們得到名稱空間的任意沖突。 你沒有特別的原因造成沖突。 選擇一個易於使用且盡可能唯一的命名空間方案,然后按照它進行操作。 添加快捷方式只會使代碼復雜化( GE::typeGraphics::Engine::type之間有什么區別?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM