Всем доброго времени суток.
Есть такая проблема, не могу перегрузить оператор << в такой ситуации:
template <typename T> class C
{
};
template <template <class> class T> class A
{
public:
class B
{
int c;
};
C<A> c;
B b;
void f()
{
std::ostringstream s;
s << b;
}
};
имеется ввиду оператор для A::B. Пытаюсь написать так:
template <template <class> class T> std::ostringstream& operator<<(std::ostringstream& _s, typename A<T>::B& _v)
{
_s << "";
return _s;
}
Компилятор (gcc 4.4.1) не находит подходящей функции для операции s << b. Причем описанной выше функции нет в кандидатах.
Как в таком случае можно перегрузить operator<< ?
29.12.09 14:04: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт