@@ -348,8 +348,8 @@ namespace beman::details::inplace_vector::storage {
348348template <class T > struct zero_sized {
349349protected:
350350 using size_type = uint8_t ;
351- static constexpr T *__data () noexcept { return nullptr ; }
352- static constexpr size_type __size () noexcept { return 0 ; }
351+ static constexpr T *storage_data () noexcept { return nullptr ; }
352+ static constexpr size_type storage_size () noexcept { return 0 ; }
353353 static constexpr void unsafe_set_size (size_t new_size) noexcept {
354354 __IV_EXPECT (new_size == 0 &&
355355 " tried to change size of empty storage to non-zero value" );
@@ -382,9 +382,11 @@ template <class T, size_t N> struct trivial {
382382 size_type storage_size_ = 0 ;
383383
384384protected:
385- constexpr const T *__data () const noexcept { return storage_data_.data (); }
386- constexpr T *__data () noexcept { return storage_data_.data (); }
387- constexpr size_type __size () const noexcept { return storage_size_; }
385+ constexpr const T *storage_data () const noexcept {
386+ return storage_data_.data ();
387+ }
388+ constexpr T *storage_data () noexcept { return storage_data_.data (); }
389+ constexpr size_type storage_size () const noexcept { return storage_size_; }
388390 constexpr void unsafe_set_size (size_t new_size) noexcept {
389391 __IV_EXPECT (size_type (new_size) <= N && " new_size out-of-bounds [0, N]" );
390392 storage_size_ = size_type (new_size);
@@ -401,11 +403,11 @@ template <class T, size_t N> struct trivial {
401403
402404template <class T , size_t N> struct raw_byte_based_storage {
403405 alignas (T) std::byte _d[sizeof (T) * N];
404- constexpr T *__data (size_t i) noexcept {
406+ constexpr T *storage_data (size_t i) noexcept {
405407 __IV_EXPECT (i < N);
406408 return reinterpret_cast <T *>(_d) + i;
407409 }
408- constexpr const T *__data (size_t i) const noexcept {
410+ constexpr const T *storage_data (size_t i) const noexcept {
409411 __IV_EXPECT (i < N);
410412 return reinterpret_cast <const T *>(_d) + i;
411413 }
@@ -428,9 +430,11 @@ template <class T, size_t N> struct non_trivial {
428430 size_type storage_size_ = 0 ;
429431
430432protected:
431- constexpr const T *__data () const noexcept { return storage_data_.__data (0 ); }
432- constexpr T *__data () noexcept { return storage_data_.__data (0 ); }
433- constexpr size_type __size () const noexcept { return storage_size_; }
433+ constexpr const T *storage_data () const noexcept {
434+ return storage_data_.storage_data (0 );
435+ }
436+ constexpr T *storage_data () noexcept { return storage_data_.storage_data (0 ); }
437+ constexpr size_type storage_size () const noexcept { return storage_size_; }
434438 constexpr void unsafe_set_size (size_t new_size) noexcept {
435439 __IV_EXPECT (size_type (new_size) <= N && " new_size out-of-bounds [0, N)" );
436440 storage_size_ = size_type (new_size);
@@ -446,12 +450,14 @@ template <class T, size_t N> struct non_trivial {
446450 constexpr ~non_trivial ()
447451 requires (std::is_trivially_destructible_v<T>)
448452 = default ;
449- constexpr ~non_trivial () { std::destroy (__data (), __data () + __size ()); }
453+ constexpr ~non_trivial () {
454+ std::destroy (storage_data (), storage_data () + storage_size ());
455+ }
450456};
451457
452458// Selects the vector storage.
453459template <class T , size_t N>
454- using _t = std::conditional_t <
460+ using storage_for = std::conditional_t <
455461 N == 0 , zero_sized<T>,
456462 std::conditional_t <std::is_trivial_v<T>, trivial<T, N>, non_trivial<T, N>>>;
457463
@@ -461,14 +467,15 @@ namespace beman {
461467
462468// / Dynamically-resizable fixed-N vector with inplace storage.
463469template <class T , size_t N>
464- struct inplace_vector : private details ::inplace_vector::storage::_t<T, N> {
470+ struct inplace_vector
471+ : private details::inplace_vector::storage::storage_for<T, N> {
465472private:
466473 static_assert (std::is_nothrow_destructible_v<T>,
467474 " T must be nothrow destructible" );
468- using __base_t = details::inplace_vector::storage::_t <T, N>;
469- using __base_t ::__data ;
470- using __base_t ::__size ;
471- using __base_t ::unsafe_set_size;
475+ using base_t = details::inplace_vector::storage::storage_for <T, N>;
476+ using base_t ::storage_data ;
477+ using base_t ::storage_size ;
478+ using base_t ::unsafe_set_size;
472479
473480public:
474481 using value_type = T;
@@ -515,8 +522,8 @@ struct inplace_vector : private details::inplace_vector::storage::_t<T, N> {
515522 // constexpr void assign(std::initializer_list<T> il);
516523
517524 // iterators
518- constexpr iterator begin () noexcept { return __data (); }
519- constexpr const_iterator begin () const noexcept { return __data (); }
525+ constexpr iterator begin () noexcept { return storage_data (); }
526+ constexpr const_iterator begin () const noexcept { return storage_data (); }
520527 constexpr iterator end () noexcept { return begin () + size (); }
521528 constexpr const_iterator end () const noexcept { return begin () + size (); }
522529 constexpr reverse_iterator rbegin () noexcept {
@@ -532,7 +539,7 @@ struct inplace_vector : private details::inplace_vector::storage::_t<T, N> {
532539 return const_reverse_iterator (begin ());
533540 }
534541
535- constexpr const_iterator cbegin () const noexcept { return __data (); }
542+ constexpr const_iterator cbegin () const noexcept { return storage_data (); }
536543 constexpr const_iterator cend () const noexcept { return cbegin () + size (); }
537544 constexpr const_reverse_iterator crbegin () const noexcept {
538545 return const_reverse_iterator (cend ());
@@ -541,8 +548,10 @@ struct inplace_vector : private details::inplace_vector::storage::_t<T, N> {
541548 return const_reverse_iterator (cbegin ());
542549 }
543550
544- [[nodiscard]] constexpr bool empty () const noexcept { return __size () == 0 ; };
545- constexpr size_type size () const noexcept { return __size (); }
551+ [[nodiscard]] constexpr bool empty () const noexcept {
552+ return storage_size () == 0 ;
553+ };
554+ constexpr size_type size () const noexcept { return storage_size (); }
546555 static constexpr size_type max_size () noexcept { return N; }
547556 static constexpr size_type capacity () noexcept { return N; }
548557 // constexpr void resize(size_type sz);
@@ -576,8 +585,8 @@ struct inplace_vector : private details::inplace_vector::storage::_t<T, N> {
576585 }
577586
578587 // [containers.sequences.inplace_vector.data], data access
579- constexpr T *data () noexcept { return __data (); }
580- constexpr const T *data () const noexcept { return __data (); }
588+ constexpr T *data () noexcept { return storage_data (); }
589+ constexpr const T *data () const noexcept { return storage_data (); }
581590
582591 // [containers.sequences.inplace_vector.modifiers], modifiers
583592 // template <class... Args>
0 commit comments