@@ -617,17 +617,15 @@ struct __optional_iterator_aliases<
617
617
_Tp,
618
618
__enable_if_t <!(is_reference<_Tp>::value && (is_function<__libcpp_remove_reference_t <_Tp>>::value ||
619
619
is_unbounded_array<__libcpp_remove_reference_t <_Tp>>::value))> > {
620
- private :
620
+ public :
621
621
using __pointer _LIBCPP_NODEBUG = std::add_pointer_t <_Tp>;
622
622
using __const_pointer _LIBCPP_NODEBUG = std::add_pointer_t <const _Tp>;
623
-
624
- public:
625
623
# ifdef _LIBCPP_ABI_BOUNDED_ITERATORS_IN_OPTIONAL
626
- using __iterator _LIBCPP_NODEBUG = __bounded_iter<__wrap_iter<__pointer>>;
627
- using __const_iterator _LIBCPP_NODEBUG = __bounded_iter<__wrap_iter<__const_pointer>>;
624
+ using iterator = __bounded_iter<__wrap_iter<__pointer>>;
625
+ using const_iterator = __bounded_iter<__wrap_iter<__const_pointer>>;
628
626
# else
629
- using __iterator _LIBCPP_NODEBUG = __wrap_iter<__pointer>;
630
- using __const_iterator _LIBCPP_NODEBUG = __wrap_iter<__const_pointer>;
627
+ using iterator = __wrap_iter<__pointer>;
628
+ using const_iterator = __wrap_iter<__const_pointer>;
631
629
# endif
632
630
};
633
631
@@ -639,14 +637,19 @@ class _LIBCPP_DECLSPEC_EMPTY_BASES optional
639
637
private __optional_sfinae_ctor_base_t <_Tp>,
640
638
private __optional_sfinae_assign_base_t <_Tp>,
641
639
public __optional_iterator_aliases<_Tp> {
642
- using __base _LIBCPP_NODEBUG = __optional_move_assign_base<_Tp>;
640
+ using __base _LIBCPP_NODEBUG = __optional_move_assign_base<_Tp>;
641
+ using __iter_aliases _LIBCPP_NODEBUG = __optional_iterator_aliases<_Tp>;
642
+ # if _LIBCPP_STD_VER >= 26
643
+ using typename __iter_aliases::__const_pointer;
644
+ using typename __iter_aliases::__pointer;
645
+ # endif
643
646
644
647
public:
645
648
using value_type = _Tp;
646
649
647
650
# if _LIBCPP_STD_VER >= 26
648
- using iterator = __optional_iterator_aliases<_Tp>::__iterator ;
649
- using const_iterator = __optional_iterator_aliases<_Tp>::__const_iterator ;
651
+ using typename __iter_aliases::const_iterator ;
652
+ using typename __iter_aliases::iterator ;
650
653
# endif
651
654
using __trivially_relocatable _LIBCPP_NODEBUG =
652
655
conditional_t <__libcpp_is_trivially_relocatable<_Tp>::value, optional, void >;
0 commit comments