Sdílet prostřednictvím


Upozornění C26478

Nepoužívejte std::move u konstantních proměnných. (es.56)

Poznámky

Toto upozornění znamená, že použití není konzistentní s tím std::move , jak std::move se má použít.

Protože const objekty nelze přesunout, volání std::move na ně nemá žádný vliv. Tento vzor může vést k nechtěným kopiím.

Název analýzy kódu: NO_MOVE_OP_ON_CONST

Příklad

struct node
{
    node* next;
    int id;
};

void foo(const node& n)
{
    const node local = std::move(n); // C26478 reported here
    // ...
}

Pokud chcete tento problém vyřešit, odeberte redundantní std::move.

Viz také

ES.56 – Zápis std::move() pouze v případě, že potřebujete explicitně přesunout objekt do jiného oboru