Reference to '*****' is ambiguous;之類的問題解決

造成這個問題的原因是:

        '*****'在一個以上的命名空間內被定義,使得有多個'*****'同時滿足,系統不知具體使用哪一個;


如boost和std中都定義了function函數類型模板,如果在程序開頭,同時使用using namespace std;和
using namespace boost;就會出現Reference to 'function' is ambiguous,的錯誤提示。

解決此類問題的辦法是:儘量不要使用 using namespace xx;, 
       而是要用包含命名空間的變量類型,類似:using std::function; 或 std::function<void*(void*)>等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章