| ||||
| Comment on Visual C++ Compiler November 2013 CTP by Source-based distros are awful (tipsy blog post)
[…] up pretty good. The current release (CTP) is going to cover roughly 70% of C++11/14 (source: Visual C++ Compiler November 2013 CTP | Sutter's Mill). C++ is accelerating. There is no doubt about […] Read More »Comment on Visual C++ Compiler November 2013 CTP by Herb Sutter
@Christian: In the CTP, =default should now work for move special member functions, and generate what the compiler would have generated implicitly had the implicit generation not been suppressed (for example by declaring a copy operation or a destructor). In VS2013 RTM we didn’t yet allow =default for move ctor/op= because that compiler didn’t have the compiler-generated ones yet, so there was nothing for =default to do — now that the CTP has the compiler-generated ones, this also let us finish =default for move ctor/op=. Read More »Comment on Visual C++ Compiler November 2013 CTP by Christian
This demonstrated the issue. Works with e.g. GCC 4.8.0, but not CTP. #include <vector> int main() { class Y { public: Y() {}; Y(const Y&) {}; Y& operator=(const Y&) { return *this; }; }; class X { public: Y y; X() {}; // Not copyable X(const X&) = delete; X& operator=(const X&) = delete; #if 1 // Doesn't compile X(X&&) = default; X& operator=(X&& rhs) = default; #else // Compiles X(X&& rhs) { y = std::move(rhs.y); }; X& operator=(X&& rhs) { y = std::move(rhs.y); return *this; };
Subscribe to:
Comments (Atom)
|