Warum ist "std::move` mit dem Namen `std::move"?

C++11 std::move(x) Funktion nicht wirklich nach überhaupt nichts. Es ist nur eine Besetzung an den r-Wert. Warum wurde das gemacht? Ist das nicht irreführend?

Erschwerend kommt hinzu, dass die drei-argument std::move tatsächlich bewegt..
Und vergessen Sie nicht über die C++98/03/11 std::char_traits::move 🙂
Mein anderer Favorit ist std::remove() was nicht, entfernen Sie die Elemente: Sie haben noch zu nennen erase() tatsächlich entfernen Sie diese Elemente aus dem container. So move bewegt sich nicht, remove nicht entfernen. Ich würde aufgepickt haben Namen mark_movable() für move.
Ich fände mark_movable() verwirrend auch. Es schlägt einen bleibenden Nebenwirkung, wo es tatsächlich keine gibt.

InformationsquelleAutor Howard Hinnant | 2014-01-26

Schreibe einen Kommentar