Я создал собственную перегрузку <<
для bool
, потому что хотел, чтобы она печатала true
и false
вместо 1
и 0
.Обычно это работает, за исключением случаев, когда я покидаю пространство имен, в котором я определил этот оператор.В этом случае я получаю неоднозначную ошибку оператора.
error C2593: 'operator <<' is ambiguous
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream(206): could be 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\Dummy.h(43): or 'std::ostream &Dummy::operator <<(std::ostream &,bool)'
while trying to match the argument list '(std::basic_ostream<_Elem,_Traits>, bool)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
Как мне указать, из какого пространства имен взять оператор?Наивно я пытался Dummy::<<
и Dummy::operator<<
, но ни один не работал.