struct A
{
A();
A(const A&);
A& operator =(const A&);
A(A&&) = delete;
A& operator =(A&&) = delete;
};
struct B
{
B();
B(const B&);
B& operator =(const B&);
};
int main()
{
A a;
a = A(); // error C2280
B b;
b = B(); // OK
}
Мой компилятор - это VС++ 2013 RC.
ошибка C2280: 'A & A:: operator = (A & &)': попытка ссылаться на удаленная функция
Мне просто интересно, почему компилятор не пытается A& operator =(const A&);
, когда A& operator =(A&&)
удален?
Является ли это поведение определенным стандартом С++?