Ich las Bewegung Konstruktor in Bezug auf, und ich habe diesen Code in VS 2013 ...Verschieben Constructor - ungültiger Typ für notleidende Konstruktor VS 2013
class Student
{
unique_ptr<string> pName_;
public:
Student(string name) : pName_(new string(name)) { }
~Student() { }
Student(Student&&) = default; // Here I get the error.
void printStudentName(void) { cout << *pName_ << endl; }
};
int main(void)
{
vector<Student> persons;
Student p = Student("Nishith");
persons.push_back(std::move(p));
persons.front().printStudentName();
return 0;
}
ich die "Student::Student(Student&&)
: ist kein spezielles Element Funktion, die kann voreingestellt werden "wenn ich es kompilieren wollte ...
Kann mir jemand erklären, warum ich diesen Fehler bekomme?
Besser auch das C++ Basis-Tag hinzufügen. Wie auch immer, wissen Sie, dass die Verwendung der dynamischen Zuweisung für die Zeichenfolge eine vollständige Verschwendung ist? – Deduplicator
Sie im Visual Studio gemeint, oder? – Deduplicator
@Deduplicator: Okay, Punkt genommen. Ja, ich meinte Visual Studio 2013. – NJMR