내가 < < 연산자를 오버로드하는 것을 시도하고있다, 그러나 나는 다음과 같은 오류 얻을 :연산자 << (템플릿)을 오버로딩 할 때 "모호한 오버로드"오류를 수정하려면 어떻게해야합니까?
error: ambiguous overload for 'operator<<' in 'std::cout << "Test "'
과 비슷한 50 억 기타 오류로 ..Followed을 : 나는 '때문에
c:\mingw\bin../lib/gcc/mingw32/4.5.2/include/c++/ostream:165:7: note: candidates are: ...
이 온다 내 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 ')? –