diff --git a/src/entt/entity/view.hpp b/src/entt/entity/view.hpp index 9d972b510..2052920b7 100644 --- a/src/entt/entity/view.hpp +++ b/src/entt/entity/view.hpp @@ -53,7 +53,7 @@ template()..., other.template storage()...}; - auto filter_or_placeholder = [placeholder = elem.placeholder](auto *value) { return (value == nullptr) ? placeholder : value; }; + [[maybe_unused]] const auto filter_or_placeholder = [placeholder = elem.placeholder](auto *value) { return (value == nullptr) ? placeholder : value; }; elem.filter = {filter_or_placeholder(view.template storage())..., filter_or_placeholder(other.template storage())...}; elem.refresh(); return elem; diff --git a/test/entt/entity/view.cpp b/test/entt/entity/view.cpp index da538f28c..83aaed21a 100644 --- a/test/entt/entity/view.cpp +++ b/test/entt/entity/view.cpp @@ -1654,6 +1654,22 @@ TEST(View, Pipe) { ASSERT_NE(pack32.storage(), nullptr); } +TEST(View, PipeNoFilter) { + std::tuple, entt::storage> storage{}; + const std::array entity{entt::entity{1}, entt::entity{3}}; + + std::get<0>(storage).emplace(entity[0u]); + std::get<1>(storage).emplace(entity[0u]); + + std::get<0>(storage).emplace(entity[1u]); + + entt::basic_view view1{std::forward_as_tuple(std::get<0>(storage))}; + const entt::basic_view view2{std::forward_as_tuple(std::as_const(std::get<1>(storage)))}; + + ASSERT_TRUE((view1 | view2).contains(entity[0u])); + ASSERT_FALSE((view1 | view2).contains(entity[1u])); +} + TEST(View, PipeWithPlaceholder) { entt::storage storage{}; const entt::entity entity{0};