2013-08-04 41 views
8

我將創建一個將基因組註釋表示爲圖表的新庫。但是,由於C++沒有像Perl這樣的集中式圖書館網站,我怎麼知道名稱空間是否與現有的名稱空間衝突?如何命名我的新項目的命名空間?

+5

爲什麼不命名爲'XnoDraw ::',那麼? – 2013-08-04 09:23:08

+2

'xd'使它聽起來像一個互聯網meme'lol ::','rly ::'和'yolo ::','XnoDraw ::'在我看來更好,唯一需要注意的是通常時間名稱法律已獲得專利或受其保護,因此請務必選擇一個「免費」的名稱。 – user2485710

+2

關閉選民:這既不是主觀的,也不是偏離主題。爲圖書館尋找一個獨特的名字是圖書館設計的一部分,這裏也有語言使用問題。 – Potatoswatter

回答

12

沒有,xd是不是一個好名字:它是太短了。在有限的情況下,它可能是一個很好的別名,但是對於一個將被其他人使用的圖書館,提供一個長的描述性名稱。然後用戶可以選擇對他們的項目有意義的別名。

namespace my_company { 
namespace XnoDraw { 
// ... 
} // namespace XnoDraw 
} // namespace my_company 

// user code, not your code: 
namespace xd = my_company::XnoDraw; 
1

您可以使用任何東西,除了std
請注意,C++不允許命名空間的複合名稱。

例如:

// Allowed 
namespace a 
{ 
    namespace b 
    { 
     int c; 
    } 
} 

// Not allowed 
namespace a::b 
{ 
    int c; 
} 
+3

您必須編寫'namespace'兩次才能打開兩個名稱空間,但可用名稱的集合是相同的。 – Potatoswatter