Прежде всего, я хотел бы отметить, что я прочитал решение {предоставлено здесь} , в котором говорится:
Обратите внимание, что операторы выходного потока обычно не являются функциями-членами. (Это потому, что для того, чтобы бинарные операторы были функциями-членами, они должны быть членами типа их левого аргумента. Однако это поток, а не ваш собственный тип. Существует несколько перегрузок оператора << () для некоторые встроенные модули, являющиеся членами класса потока вывода.) </p>
Теперь вот моя проблема. Я удалял библиотеку из большого приложения. Предполагалось, что библиотека должна иметь какие-либо полезные функции, сжатые в заголовочный файл.
Один из классов в этом заголовочном файле должен иметь перегрузку оператора потока <<. Я не могу понять, как сделать это без функции друга, и если я использую функцию друга, я не могу сделать все это в заголовке, потому что я получу несколько ошибок определения. </p>
Итак, есть ли какая-то хитрость - может быть, какая-то игра с функторами, обертками или чем-то еще, которая позволит мне написать определение для перегрузки оператора для << в моем классе, чтобы избежать этой проблемы? </p>