Ветвление операторов присваивания со значениями вместо ссылок

Этот вопрос возникает из вопросов, поднятыхэтот ответ.

Обычно мы определяем операторы копирования для типаT какT& operator=(const T&)и переместить операторы присваивания для типаT какT& operator=(T&&).

Однако что происходит, когда мы используем параметр-значение, а не ссылку?

class T
{
public:
  T& operator=(T t);
};

Это должно сделать T копируемым и перемещаемым. Тем не менее, я хочу знать, каковы языковые последствия дляT?

В частности:

Считается ли это оператором копирования дляTсогласно спецификации?Считается ли это оператором перемещения дляTсогласно спецификации?БудетT есть сгенерированный компилятором оператор присваивания копии?БудетT есть сгенерированный компилятором оператор присваивания перемещения?Как это влияет на черты классов, такие какstd::is_move_assignable?

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

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