Move Constructor - invalid type for defaulted constructor VS 2013 <p>I was reading regarding move constructor and I did this code in VS 2013...</p> <pre><code>class Student { unique_ptr&lt;string&gt; pName_; public: Student(string name) : pName_(new string(name)) { } ~Student() { } Student(Student&amp;&amp;) = default; // Here I get the error. void printStudentName(void) { cout &lt;&lt; *pName_ &lt;&lt; endl; } }; int main(void) { vector&lt;Student&gt; persons; Student p = Student("Nishith"); persons.push_back(std::move(p)); persons.front().printStudentName(); return 0; } </code></pre> <p>I get the "<code>Student::Student(Student&amp;&amp; )</code> : is not a special member function which can be defaulted" when I tried to compile it...</p> <p>Can anyone explain me why I am getting this error?</p>