造成這個問題的原因是:
'*****'在一個以上的命名空間內被定義,使得有多個'*****'同時滿足,系統不知具體使用哪一個;
如boost和std中都定義了function函數類型模板,如果在程序開頭,同時使用using namespace std;和
using namespace boost;就會出現Reference to 'function' is ambiguous,的錯誤提示。
解決此類問題的辦法是:儘量不要使用 using namespace xx;,
而是要用包含命名空間的變量類型,類似:using std::function; 或 std::function<void*(void*)>等