Xavier Lamorlette

C++ : Références Rvalue et Move

Type des values

T && refRValue = …;

std::move

std::move est un cast en rvalue.

Move constructor et move assignment constructor

class A {
    A(A && other);                // move constructor
    A & operator = (A && other);  // move assignment operator
};

Surcharges

Les “ref-qualifiers” permettent de définir des surcharges de méthodes, comme les “cv-qualifiers” (cv: const / volatile). Exemple :

class Foo {
public:
    Bar & get() & {
        return bar;
    }
    const Bar & get() const & {
        return bar;
    }
    Bar && get() && {
        return std::move(bar);
    }
private:
    Bar bar;
};

La dernière mise à jour de cette page date d'août 2020.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.