我試圖重載< <運營商,但我得到了以下錯誤:重載運算符<<(模板)時,如何解決「模糊超載」錯誤?
error: ambiguous overload for 'operator<<' in 'std::cout << "Test "'
5個十億類似於其他錯誤..Followed:
c:\mingw\bin../lib/gcc/mingw32/4.5.2/include/c++/ostream:165:7: note: candidates are: ...
這來了,因爲我」 m在我的main.cpp文件中使用cout。
這裏是我的代碼:
在BinTree.h:
template <typename T>
class BinTree{
...
friend std::ostream& operator<< <>(std::ostream&, const T&);
在BinTree.cpp:
template <typename T>
std::ostream& operator<< (std:: ostream& o, const T& value){
return o << value;
}
預先感謝任何幫助,您可以給。
我不完全相信你已經爲我們提供了足夠的代碼來解決這個問題,但你_have_給我們的信息使我問:爲什麼'operator <<(std :: ostream&,const T&)'需要訪問'BinTree'的內部,如果它沒有使用它們(或BinTree ')? –