2016-07-29 75 views
-2

我的代碼中出現了很多不明確的引用。我必須刪除「using namespace x」codes並將每個「something」改爲「x :: something」......有沒有捷徑或優雅的解決方案?任何優雅的解決方案歧義參考?

是的,我知道,我不會用 「使用命名空間」 再次:)

+2

優雅的解決方案是使用命名空間,他們的整個存在是爲了防止名稱衝突...什麼我個人傾向於這樣做,主要是在使用boost時縮短命名空間名稱,例如:'namespace bfs = boost :: filesystem;'然後我可以在'之後執行'bfs :: wtv'。 – Borgleader

+0

停止使用'使用'。明確。 – NathanOliver

+0

@NathanOliver:我想這正是他想要做的。 –

回答

1

你可以這樣做:

而不是使用的:

using namespace std; // all std 

你可以很明確的歧義:

using std::cout, std::cin, std::endl; // specific references from std 
+0

好,那會很有用。反正有這樣的事情:「使用名稱空間標準;使用不是標準:: cout」? – wArtist

+0

恐怕你不能:[**從命名空間(C++)**]中排除一個類(http://www.gamedev.net/topic/503495-excluding-a-class-from-a-namespace -C/)。但是這'使用命名空間std;使用x :: cout;'(其中'x'是您可選的'cout'類)不應該是一個問題。 @wArtist –