Bonjour,
J'ai actuellement une fonction qui, une fois simplifiée, ressemble à ça :
Ma question est : pourquoi le move est-il nécessaire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <memory> struct Base {}; struct Derived : Base {}; std::unique_ptr<Base> foo() { std::unique_ptr<Derived> ptr; return std::move(ptr); }
Pourquoi le code-suivant ne fonctionne-t-il pas ?
En effet, il me semblait que le move était implicite au moment d'un return.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <memory> struct Base {}; struct Derived : Base {}; std::unique_ptr<Base> foo() { std::unique_ptr<Derived> ptr; return ptr; }
Où me trompe-je ?
Je vous remercie d'avance,
Equinoxe
Partager