title: Move Constructor - invalid type for defaulted constructor VS 2013
body: <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>