I\'ve been able to find multiple conversations about this in the past (e.g. here), but such conversations are from quite a while ago. The code I have a question about is:
I know that you cannot mark move constructors as default, but that does not imply that the compiler does not support generating default move constructors all-together
Unfortunately, that's exactly what that means. VS2013 does not support implicit generation of move constructors and move assignment operators. If it did, they wouldn't really have a reason to disallow the = default
syntax, especially since you're allowed to do that for the copy constructor and assignment operator.
Quoting MSDN: Support For C++11 Features (Modern C++)
"Rvalue references v3.0" adds new rules to automatically generate move constructors and move assignment operators under certain conditions. However, this is not implemented in Visual C++ in Visual Studio 2013, due to time and resource constraints.