Я пишу игру, в которой есть 2 игрока, «ЧЕРНЫЙ» и «БЕЛЫЙ».
У меня есть следующий класс enum:
enum class PlayerType
{
BLACK, WHITE
};
Я хотел бы написать оператор ostream‹‹ для этого класса. Вот моя попытка:
std::ostream& operator<<(std::ostream& os, const PlayerType& pt)
{
if(pt == PlayerType::BLACK)
os << "Black";
return os;
}
Однако я получаю следующую ошибку компилятора:
operator<< must take exactly 1 argument
Я думаю, проблема в том, что я вставляю класс перечисления и оператор‹‹ внутри другого класса; class Player
.
Могу ли я что-нибудь сделать с этим, не удаляя перечисление из этого класса?