Bonjour,

J'ai actuellement une fonction qui, une fois simplifi�e, ressemble � �a :
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);
}
Ma question est : pourquoi le move est-il n�cessaire ?

Pourquoi le code-suivant ne fonctionne-t-il pas ?
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;
}
En effet, il me semblait que le move �tait implicite au moment d'un return.

O� me trompe-je ?

Je vous remercie d'avance,
Equinoxe