Я хочу реализовать симпатичную печать для всех классов с поддержкой для поддержки цикла цикла с помощью перегрузки < <. Код (неправильный) выглядит следующим образом.
template<class C> ostream& operator<<(ostream& out, const C& v) {
for(auto x : v) out<<x<<' ';
return out;
}
Проблема заключается в том, что это будет противоречить существующим < перегрузка. Есть ли способ указать в шаблоне, что C должен поддерживать ranged-base для цикла?