Dans ce cas
struct Foo {};
Foo meh() {
return std::move(Foo());
}
Je suis presque sûr que le déplacement n'est pas nécessaire, parce que le nouveau créé Foo
sera une valeur x.
Mais que faire dans des cas comme celui-ci ?
struct Foo {};
Foo meh() {
Foo foo;
//do something, but knowing that foo can safely be disposed of
//but does the compiler necessarily know it?
//we may have references/pointers to foo. how could the compiler know?
return std::move(foo); //so here the move is needed, right?
}
C'est là que le déménagement est nécessaire, je suppose ?