diff --git a/libs/geom/include/psemek/geom/swizzle.hpp b/libs/geom/include/psemek/geom/swizzle.hpp index 42f46feb..a6172c1d 100644 --- a/libs/geom/include/psemek/geom/swizzle.hpp +++ b/libs/geom/include/psemek/geom/swizzle.hpp @@ -24,7 +24,8 @@ namespace psemek::geom template constexpr auto swizzle = [](auto const & x){ using result = typename detail::swizzle_rebind>::template type; - return result{(I == (-1) ? 0 : x[I])...}; + using element = std::decay_t; + return result{(I == (-1) ? element{} : x[I])...}; };