Здравствуйте, Аноним, Вы писали:
А>Всем доброго времени суток.
А>Есть такая проблема, не могу перегрузить оператор << в такой ситуации:
... skiped ...
А>имеется ввиду оператор для A::B. Пытаюсь написать так:
... skiped ...
А>Компилятор (gcc 4.4.1) не находит подходящей функции для операции s << b. Причем описанной выше функции нет в кандидатах.
А>Как в таком случае можно перегрузить operator<< ?
Как исправить в данном случае operator<< — затрудняюсь сказать. А нельзя ли поправить f()? Если вынести описание этого метода за класс и написать после описания шаблонного operator<< вот таким образом:
template< template<class> class T>
void A<T>::f()
{
operator<< <T>(std::cout,b);
}
То все компилируется и работает.