@@ -23240,14 +23240,15 @@ template<typename... Args>
2324023240typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
2324123241 using traits_type = component_traits<typename basic_storage<Args...>::value_type, typename basic_storage<Args...>::entity_type>;
2324223242 static_assert(traits_type::page_size != 0u, "Unexpected page size");
23243- const typename basic_storage<Args...>::base_type &base = storage;
2324423243 const auto *page = storage.raw();
2324523244
23245+ // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
2324623246 for(std::size_t pos{}, count = storage.size(); pos < count; pos += traits_type::page_size, ++page) {
2324723247 if(const auto dist = (std::addressof(instance) - *page); dist >= 0 && dist < static_cast<decltype(dist)>(traits_type::page_size)) {
23248- return *(base .rbegin() + static_cast<decltype(dist)>(pos) + dist);
23248+ return *(static_cast<const typename basic_storage<Args...>::base_type &>(storage) .rbegin() + static_cast<decltype(dist)>(pos) + dist);
2324923249 }
2325023250 }
23251+ // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
2325123252
2325223253 return null;
2325323254}
@@ -34373,14 +34374,15 @@ template<typename... Args>
3437334374typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
3437434375 using traits_type = component_traits<typename basic_storage<Args...>::value_type, typename basic_storage<Args...>::entity_type>;
3437534376 static_assert(traits_type::page_size != 0u, "Unexpected page size");
34376- const typename basic_storage<Args...>::base_type &base = storage;
3437734377 const auto *page = storage.raw();
3437834378
34379+ // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
3437934380 for(std::size_t pos{}, count = storage.size(); pos < count; pos += traits_type::page_size, ++page) {
3438034381 if(const auto dist = (std::addressof(instance) - *page); dist >= 0 && dist < static_cast<decltype(dist)>(traits_type::page_size)) {
34381- return *(base .rbegin() + static_cast<decltype(dist)>(pos) + dist);
34382+ return *(static_cast<const typename basic_storage<Args...>::base_type &>(storage) .rbegin() + static_cast<decltype(dist)>(pos) + dist);
3438234383 }
3438334384 }
34385+ // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
3438434386
3438534387 return null;
3438634388}
0 commit comments