VG
Size: a a a
VG
VG
EM
VG
VG
VG
VG
EM
VG
EM
VG
VG
VG
VG
LA
LA
LA
LA
O
float f = 42.0f;
int i = 42;
void fn(float&&);
fn(i);
// materializes temp prvalue float from int
fn(f);
// doesn't materialize temp prvalue float from float
VS
float f = 42.0f;
int i = 42;
void fn(float&&);
fn(i);
// materializes temp prvalue float from int
fn(f);
// doesn't materialize temp prvalue float from float
f
этим объектов уже владеет вызывающая сторона? создание копии тоже не соответствует этой семантике, потому что объектов станет два. ошибка заставляет сделать явный вызов std::move