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