Я сделал оператор:
template <typename Container>
std::ostream& operator << (std::ostream& out, const Container& container) {
string result = "{";
out << result;
return out;
}
Когда я хочу его использовать:
enum class space { empty, full, half };
using elements_t = vector<space>;
int main(int argc, char** argv)
{
elements_t elems = { space::half };
cout << elems;
return 0;
}
Выдает ошибку:
Оператор << is is неоднозначный. </p>
Как указать, что вы хотите использовать пользовательский? Я знаю, что с помощью шаблонной функции вы бы назначали типы впоследствии в <>, и если бы у меня был определенный c класс / структура, я мог бы сделать оператор локальным или дружественным, но что, если я хочу, чтобы он был глобальным?