[PATCH] D21094: [libcxx] [test] In test/support/test_allocator.h, fix construct() to avoid moving immovable types.
    Eric Fiselier via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Jun 13 23:00:03 PDT 2016
    
    
  
EricWF added inline comments.
================
Comment at: test/support/test_allocator.h:83
@@ -82,2 +82,3 @@
         {return UINT_MAX / sizeof(T);}
+#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     void construct(pointer p, const T& val)
----------------
`#if TEST_STD_VER < 11`
================
Comment at: test/support/test_allocator.h:88
@@ -88,1 +87,3 @@
+    template <class U> void construct(pointer p, U&& val)
+        {::new(p) T(std::forward<U>(val));}
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
----------------
While your here this should have be `::new ((void*)p)`.
I learned that from you :-P
================
Comment at: test/support/test_allocator.h:144
@@ -142,2 +143,3 @@
         {return UINT_MAX / sizeof(T);}
+#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES
     void construct(pointer p, const T& val)
----------------
`#if TEST_STD_VER < 11` please.
================
Comment at: test/support/test_allocator.h:149
@@ -148,1 +148,3 @@
+    template <class U> void construct(pointer p, U&& val)
+        {::new(p) T(std::forward<U>(val));}
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
----------------
While your here this should have be `::new ((void*)p)`.
http://reviews.llvm.org/D21094
    
    
More information about the cfe-commits
mailing list