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