@@ -23240,14 +23240,15 @@ template<typename... Args>
23240
23240
typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
23241
23241
using traits_type = component_traits<typename basic_storage<Args...>::value_type, typename basic_storage<Args...>::entity_type>;
23242
23242
static_assert(traits_type::page_size != 0u, "Unexpected page size");
23243
- const typename basic_storage<Args...>::base_type &base = storage;
23244
23243
const auto *page = storage.raw();
23245
23244
23245
+ // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
23246
23246
for(std::size_t pos{}, count = storage.size(); pos < count; pos += traits_type::page_size, ++page) {
23247
23247
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);
23249
23249
}
23250
23250
}
23251
+ // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
23251
23252
23252
23253
return null;
23253
23254
}
@@ -34373,14 +34374,15 @@ template<typename... Args>
34373
34374
typename basic_storage<Args...>::entity_type to_entity(const basic_storage<Args...> &storage, const typename basic_storage<Args...>::value_type &instance) {
34374
34375
using traits_type = component_traits<typename basic_storage<Args...>::value_type, typename basic_storage<Args...>::entity_type>;
34375
34376
static_assert(traits_type::page_size != 0u, "Unexpected page size");
34376
- const typename basic_storage<Args...>::base_type &base = storage;
34377
34377
const auto *page = storage.raw();
34378
34378
34379
+ // NOLINTBEGIN(cppcoreguidelines-pro-bounds-pointer-arithmetic)
34379
34380
for(std::size_t pos{}, count = storage.size(); pos < count; pos += traits_type::page_size, ++page) {
34380
34381
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);
34382
34383
}
34383
34384
}
34385
+ // NOLINTEND(cppcoreguidelines-pro-bounds-pointer-arithmetic)
34384
34386
34385
34387
return null;
34386
34388
}
0 commit comments