[Bug libstdc++/33807] Incorrect ambiguous overload

bldantes at comcast dot net gcc-bugzilla@gcc.gnu.org
Thu Oct 18 16:40:00 GMT 2007



------- Comment #4 from bldantes at comcast dot net  2007-10-18 16:40 -------
Why does adding the new libstdc++ template function:

template<typename _Tp>
inline bool operator!=(const allocator<_Tp>&, const allocator<_Tp>&);

fix the conflict between my template function:

template <class T>
bool operator != (const T& x, const T& y);

and the existing libstdc++ template function:

template<typename _T1, typename _T2>
inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&);

???

Before the addition of the new template function, it seems like the conflict in
the first place is just wrong. The compiler should pick the existing one in
libstdc++ over mine because it more closely matches the type, no?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33807



More information about the Gcc-bugs mailing list