J'ai trouvé ce code dans un livre.Arguments par défaut dans un constructeur de mouvement
template<typename T,typename Container=std::deque<T> >
class stack
{
public:
explicit stack(const Container&);
explicit stack(Container&& = Container()); <<<<<<
//...
}
Je me demande quand est-ce que la valeur par défaut du constructeur de déplacement est utilisée?
Autant que je sache, dans une opération de déplacement, il y a toujours un objet source à partir duquel effectuer un mouvement.
N'y a-t-il aucun constructeur par défaut? –
Cela ne correspond pas à la définition d'un ['move constructor'] (http://en.cppreference.com/w/cpp/language/move_constructor). C'est juste un constructeur régulier. Un constructeur de déplacement n'est pas basé sur un modèle et se présente sous la forme de pile (stack &&). –
@ FrançoisAndrieux: "... et soit il n'y a pas d'autres paramètres, soit le reste des paramètres ont tous des valeurs par défaut." – 6502