view: const correctness for constructor arguments
This commit is contained in:
@@ -1295,16 +1295,16 @@ public:
|
||||
* @return A newly created view.
|
||||
*/
|
||||
template<typename... Component, typename... Exclude>
|
||||
entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) {
|
||||
entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) const {
|
||||
static_assert(sizeof...(Component) > 0);
|
||||
return { assure<std::decay_t<Component>>()..., assure<Exclude>()... };
|
||||
}
|
||||
|
||||
/*! @copydoc view */
|
||||
template<typename... Component, typename... Exclude>
|
||||
entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) const {
|
||||
static_assert(std::conjunction_v<std::is_const<Component>...>);
|
||||
return const_cast<basic_registry *>(this)->view<Component...>(exclude<Exclude...>);
|
||||
entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) {
|
||||
static_assert(sizeof...(Component) > 0);
|
||||
return { assure<std::decay_t<Component>>()..., assure<Exclude>()... };
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -149,8 +149,7 @@ class basic_view<Entity, exclude_t<Exclude...>, Component...> {
|
||||
underlying_iterator it;
|
||||
};
|
||||
|
||||
// we could use pool_type<Component> &..., but vs complains about it and refuses to compile for unknown reasons (likely a bug)
|
||||
basic_view(storage<Entity, std::remove_const_t<Component>> &... component, storage<Entity, std::remove_const_t<Exclude>> &... epool) ENTT_NOEXCEPT
|
||||
basic_view(pool_type<Component> &... component, pool_type<Exclude> &... epool) ENTT_NOEXCEPT
|
||||
: pools{&component..., &epool...}
|
||||
{}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user