@@ -300,8 +300,7 @@ struct __forward_node_traits {
300300 return __p;
301301 }
302302 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node (__node_pointer __p) {
303- return __p ? pointer_traits<__begin_node_pointer>::pointer_to (*static_cast <__begin_node*>(std::addressof (*__p)))
304- : static_cast <__begin_node_pointer>(nullptr );
303+ return __static_fancy_pointer_cast<__begin_node_pointer>(__p);
305304 }
306305};
307306
@@ -316,9 +315,7 @@ struct __forward_begin_node {
316315 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node (pointer __n) : __next_(__n) {}
317316
318317 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin () const {
319- return __next_ ? pointer_traits<__begin_node_pointer>::pointer_to (
320- *static_cast <__forward_begin_node*>(std::addressof (*__next_)))
321- : static_cast <__begin_node_pointer>(nullptr );
318+ return __static_fancy_pointer_cast<__begin_node_pointer>(__next_);
322319 }
323320};
324321
@@ -374,8 +371,7 @@ class _LIBCPP_TEMPLATE_VIS __forward_list_iterator {
374371
375372 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin () const { return __ptr_; }
376373 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer () const {
377- return __ptr_ ? pointer_traits<__node_pointer>::pointer_to (*static_cast <__node_type*>(std::addressof (*__ptr_)))
378- : static_cast <__node_pointer>(nullptr );
374+ return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
379375 }
380376
381377 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator (nullptr_t ) _NOEXCEPT
@@ -445,8 +441,7 @@ class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator {
445441
446442 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin () const { return __ptr_; }
447443 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer () const {
448- return __ptr_ ? pointer_traits<__node_pointer>::pointer_to (*static_cast <__node_type*>(std::addressof (*__ptr_)))
449- : static_cast <__node_pointer>(nullptr );
444+ return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
450445 }
451446
452447 _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator (nullptr_t ) _NOEXCEPT
0 commit comments