@@ -1879,8 +1879,6 @@ pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
1879
1879
const_iterator __p, _Key const & __k, _Args&&... __args) {
1880
1880
__end_node_pointer __parent;
1881
1881
__node_base_pointer __dummy;
1882
- // min_pointer<std::__tree_node_base<min_pointer<void>>>
1883
-
1884
1882
__node_base_pointer& __child = __find_equal (__p, __parent, __dummy, __k);
1885
1883
__node_pointer __r = std::__static_fancy_pointer_cast<__node_pointer>(__child);
1886
1884
bool __inserted = false ;
@@ -1899,8 +1897,9 @@ _LIBCPP_CONSTEXPR_SINCE_CXX26 typename __tree<_Tp, _Compare, _Allocator>::__node
1899
1897
__tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&&... __args) {
1900
1898
__node_allocator& __na = __node_alloc ();
1901
1899
__node_holder __h (__node_traits::allocate (__na, 1 ), _Dp (__na));
1902
- __node_traits::construct (__na, std::addressof (*__h), std::forward<_Args>(__args)...);
1903
- // __node_traits::construct(__na, std::addressof(__h->__value_), std::forward<_Args>(__args)...);
1900
+ // here.... for same_as failure
1901
+ // __node_traits::construct(__na, std::addressof(*__h), std::forward<_Args>(__args)...);
1902
+ __node_traits::construct (__na, std::addressof (__h->__value_ ), std::forward<_Args>(__args)...);
1904
1903
// note: construction of subobject of object outside its lifetime is not allowed in a constant expression
1905
1904
__h.get_deleter ().__value_constructed = true ;
1906
1905
return __h;
0 commit comments