Fix static assert problem on gcc; remove XFAILs that I put in in r274250
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274285 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/__tree b/include/__tree
index e4863a0..52166ba 100644
--- a/include/__tree
+++ b/include/__tree
@@ -946,8 +946,6 @@
typedef allocator_traits<__node_base_allocator> __node_base_traits;
static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value),
"Allocator does not rebind pointers in a sane manner.");
- static_assert((is_copy_constructible<value_compare>::value),
- "Comparator must be copy-constructible.");
private:
__node_pointer __begin_node_;
@@ -1707,6 +1705,8 @@
template <class _Tp, class _Compare, class _Allocator>
__tree<_Tp, _Compare, _Allocator>::~__tree()
{
+ static_assert((is_copy_constructible<value_compare>::value),
+ "Comparator must be copy-constructible.");
destroy(__root());
}