@@ -302,6 +302,8 @@ class basic_common_view {
302
302
using entity_type = typename Type::entity_type;
303
303
/* ! @brief Unsigned integer type. */
304
304
using size_type = std::size_t ;
305
+ /* ! @brief Signed integer type. */
306
+ using difference_type = std::ptrdiff_t ;
305
307
/* ! @brief Forward iterator type. */
306
308
using iterator = internal::view_iterator<common_type, Checked, Get, Exclude>;
307
309
@@ -339,7 +341,7 @@ class basic_common_view {
339
341
* @return An iterator to the first entity of the view.
340
342
*/
341
343
[[nodiscard]] iterator begin () const noexcept {
342
- return (index != Get) ? iterator{pools[index ]->end () - static_cast <typename iterator:: difference_type>(offset ()), pools, filter, index } : iterator{};
344
+ return (index != Get) ? iterator{pools[index ]->end () - static_cast <difference_type>(offset ()), pools, filter, index } : iterator{};
343
345
}
344
346
345
347
/* *
@@ -368,7 +370,7 @@ class basic_common_view {
368
370
[[nodiscard]] entity_type back () const noexcept {
369
371
if (index != Get) {
370
372
auto it = pools[index ]->rbegin ();
371
- const auto last = it + static_cast <typename iterator:: difference_type>(offset ());
373
+ const auto last = it + static_cast <difference_type>(offset ());
372
374
for (; it != last && !(internal::all_of (pools.begin (), pools.begin () + index , *it) && internal::all_of (pools.begin () + index + 1 , pools.end (), *it) && internal::none_of (filter.begin (), filter.end (), *it)); ++it) {}
373
375
return it == last ? null : *it;
374
376
}
@@ -477,6 +479,8 @@ class basic_view<get_t<Get...>, exclude_t<Exclude...>, std::enable_if_t<(sizeof.
477
479
using entity_type = typename base_type::entity_type;
478
480
/* ! @brief Unsigned integer type. */
479
481
using size_type = typename base_type::size_type;
482
+ /* ! @brief Signed integer type. */
483
+ using difference_type = std::ptrdiff_t ;
480
484
/* ! @brief Forward iterator type. */
481
485
using iterator = typename base_type::iterator;
482
486
/* ! @brief Iterable view type. */
@@ -695,6 +699,8 @@ class basic_storage_view {
695
699
using entity_type = typename common_type::entity_type;
696
700
/* ! @brief Unsigned integer type. */
697
701
using size_type = std::size_t ;
702
+ /* ! @brief Signed integer type. */
703
+ using difference_type = std::ptrdiff_t ;
698
704
/* ! @brief Random access iterator type. */
699
705
using iterator = std::conditional_t <Policy == deletion_policy::in_place, internal::view_iterator<common_type, true , 1u , 0u >, typename common_type::iterator>;
700
706
/* ! @brief Reverse iterator type. */
@@ -759,7 +765,7 @@ class basic_storage_view {
759
765
if constexpr (Policy == deletion_policy::swap_and_pop) {
760
766
return leading ? leading->begin () : iterator{};
761
767
} else if constexpr (Policy == deletion_policy::swap_only) {
762
- return leading ? (leading->end () - leading->free_list ()) : iterator{};
768
+ return leading ? (leading->end () - static_cast <difference_type>( leading->free_list () )) : iterator{};
763
769
} else {
764
770
static_assert (Policy == deletion_policy::in_place, " Unexpected storage policy" );
765
771
return leading ? iterator{leading->begin (), {leading}, {}, 0u } : iterator{};
@@ -805,7 +811,7 @@ class basic_storage_view {
805
811
return leading ? leading->rend () : reverse_iterator{};
806
812
} else {
807
813
static_assert (Policy == deletion_policy::swap_only, " Unexpected storage policy" );
808
- return leading ? (leading->rbegin () + leading->free_list ()) : reverse_iterator{};
814
+ return leading ? (leading->rbegin () + static_cast <difference_type>( leading->free_list () )) : reverse_iterator{};
809
815
}
810
816
}
811
817
@@ -818,7 +824,7 @@ class basic_storage_view {
818
824
if constexpr (Policy == deletion_policy::swap_and_pop) {
819
825
return empty () ? null : *leading->begin ();
820
826
} else if constexpr (Policy == deletion_policy::swap_only) {
821
- return empty () ? null : *(leading->end () - leading->free_list ());
827
+ return empty () ? null : *(leading->end () - static_cast <difference_type>( leading->free_list () ));
822
828
} else {
823
829
static_assert (Policy == deletion_policy::in_place, " Unexpected storage policy" );
824
830
const auto it = begin ();
@@ -913,6 +919,8 @@ class basic_view<get_t<Get>, exclude_t<>>
913
919
using entity_type = typename base_type::entity_type;
914
920
/* ! @brief Unsigned integer type. */
915
921
using size_type = typename base_type::size_type;
922
+ /* ! @brief Signed integer type. */
923
+ using difference_type = std::ptrdiff_t ;
916
924
/* ! @brief Random access iterator type. */
917
925
using iterator = typename base_type::iterator;
918
926
/* ! @brief Reverse iterator type. */
@@ -1051,7 +1059,7 @@ class basic_view<get_t<Get>, exclude_t<>>
1051
1059
func ();
1052
1060
}
1053
1061
} else {
1054
- if (const auto len = base_type::size (); len != 0u ) {
1062
+ if (const auto len = static_cast <difference_type>( base_type::size ()) ; len != 0 ) {
1055
1063
for (auto last = storage ()->end (), first = last - len; first != last; ++first) {
1056
1064
func (*first);
1057
1065
}
0 commit comments