Здравствуйте Аноним, Вы писали:
А>Не подскажите причину такого поведения?
Насколько я понял, глядя на
std::ostream& operator<< (std::ostream& os, const A<T>& a);
класс A — шаблонный
Тогда быть может код должен выглядеть так?
template <class T>
class A
{
public:
friend std::ostream& operator<< (std::ostream& os, const A<T>& a);
friend bool operator < (A<T>&, A<T>&);
private:
int m_i;
};
template <class T>
bool operator < (A<T>& a1, A<T>& a2)
{
return (a1.m_i < a2.m_i);
}
template <class T>
std::ostream& operator<< (std::ostream& os, const A<T>& a)
{
os << a.m_i;
return os;
}