Могут ли операторы присваивания C ++ быть свободными функциями?

Я пытаюсь что-то вроде этого:

Foo & operator=(Foo & to, const Bar &from);

Но я получаю эту ошибку:

E2239 'operator =(Foo &, const Bar &)' must be a member function

Существуют ли ограничения на то, что операторы могут / не могут быть определены как свободные функции, и если да, то почему?

Ответы на вопрос(2)

Ваш ответ на вопрос