Nach N3485 §23.3.2.2:Verschieben Bauer und `std :: array`
(...) die implizite Bewegung Konstruktor und Zuweisungsoperator für Array bewegen verlangen, dass T MoveConstructible sein oder MoveAssignable bzw..
So unterstützt std::array
Verschieben Semantik, wenn der Typ seiner Elemente tut. Groß!
Was bedeutet das aber wirklich? Ich neige dazu, diesen Typ als eine sicherere Version eines Arrays darzustellen, das eine STL-kompatible Schnittstelle bereitstellt, aber wenn dies zutrifft, wie kann dann ein seine Elemente verschieben? Kann ich dasselbe mit einem gewöhnlichen Array machen?
* "Nur wenn Sie es in eine Klassenart umbrechen" * Es ist also die Tatsache, dass es ein benutzerdefinierter Typ ist, der dieses Verhalten erlaubt ... Interessant. –
@faranwath: In der Tat - die Tatsache, dass benutzerdefinierte Aggregatarten implizit Move-Konstruktoren generiert haben. –