erik.pilkington added a comment.

Hi Volodymyr, thanks for working on this!



================
Comment at: libcxx/include/memory:1479
+struct __has_construct_missing
+    : false_type
+{
----------------
Shouldn't this be true_type?


================
Comment at: libcxx/include/memory:1673-1677
+            (is_same
+             <
+                typename _VSTD::remove_const<typename 
allocator_type::value_type>::type,
+                typename _VSTD::remove_const<_SourceTp>::type
+             >::value
----------------
I'm not sure if this is correct. Previously, we only selected this overload if 
the allocator didn't have a construct() member, or if it was a std::allocator, 
in which case we know construct() just called in-place new. With this patch, we 
would select this overload for a custom allocator that overrode construct() so 
long as the value_types matched. I think the right behaviour for the custom 
allocator case would be to use the construct() member instead of memcpying.


https://reviews.llvm.org/D48342



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to