Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(497)

Unified Diff: Source/wtf/text/WTFString.h

Issue 354023003: Add move constructor and assignment operator to RefPtr class (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« Source/wtf/text/AtomicString.h ('K') | « Source/wtf/text/AtomicString.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/wtf/text/WTFString.h
diff --git a/Source/wtf/text/WTFString.h b/Source/wtf/text/WTFString.h
index 13078127885b7c8233cbb1e20515fdbd60125df8..094282f676ad541cf45d571d94306af75cb77eb3 100644
--- a/Source/wtf/text/WTFString.h
+++ b/Source/wtf/text/WTFString.h
@@ -123,13 +123,13 @@ public:
String(StringImpl* impl) : m_impl(impl) { }
String(PassRefPtr<StringImpl> impl) : m_impl(impl) { }
-#if COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES)
- // We have to declare the copy constructor and copy assignment operator as well, otherwise
- // they'll be implicitly deleted by adding the move constructor and move assignment operator.
- String(const String& other) : m_impl(other.m_impl) { }
- String(String&& other) : m_impl(other.m_impl.release()) { }
- String& operator=(const String& other) { m_impl = other.m_impl; return *this; }
- String& operator=(String&& other) { m_impl = other.m_impl.release(); return *this; }
+#if COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES) && COMPILER_SUPPORTS(CXX_DEFAULTED_FUNCTIONS)
+ // We have to explicitly declare the move constructor and move copy assignment operator. The compiler does
+ // not generate them because the class has an explicitly defined destructor.
+ String(const String&) = default;
+ String(String&&) = default;
+ String& operator=(const String&) = default;
+ String& operator=(String&&) = default;
#endif
// Inline the destructor.
« Source/wtf/text/AtomicString.h ('K') | « Source/wtf/text/AtomicString.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698