2013-04-07 57 views
1

有,在命名空間中聲明類long::name::space::name用頭指令應該隻影響該文件

而且我也想專注於全局命名空間中的一些模板,這個班的頭文件,即

template<typename T> 
class GlobalClass<NSClass<T>> { 

} 
... 

每次寫命名空間的名字都非常煩人,所以我想使用某種使用指令,但將這個名稱推送到全局命名空間不是個好主意嗎?

是否有辦法做一些事情來縮短輸入時間,但是不能在全局命名空間中添加任何內容?

我知道有一個解決方案,但它是相當難看:

#define NS long::name::space::name 
//use NS here 
#undef NS 
+0

您確認'#define'很難看?或者你是否習慣於自動反衝,並在看到預處理器指令時使用「醜陋」一詞? – 2013-04-07 23:26:52

+0

我相信它對我來說似乎並不美麗 – RiaD 2013-04-07 23:32:15

回答

1

你可以給命名空間的短別名(記住,long是C++中的關鍵字):

namespace SN = longy::name::space::name; 

// ... 

SN::my_class obj; // Resolves into longy::name::space::name::my_class 
相關問題