diff --git a/libs/vecr/include/psemek/vecr/colorizer.hpp b/libs/vecr/include/psemek/vecr/colorizer.hpp index c3533b00..94d4991e 100644 --- a/libs/vecr/include/psemek/vecr/colorizer.hpp +++ b/libs/vecr/include/psemek/vecr/colorizer.hpp @@ -50,9 +50,16 @@ namespace psemek::vecr template any_colorizer & operator = (Colorizer && colorizer) { - colorizer_ = [colorizer = std::forward(colorizer)](math::point const & p, sdf_sample const & sample){ - return colorize(colorizer, p, sample); - }; + if constexpr (std::is_invocable_v const &, sdf_sample const &>) + { + colorizer_ = std::move(colorizer); + } + else + { + colorizer_ = [colorizer = std::forward(colorizer)](math::point const & p, sdf_sample const & sample){ + return colorize(colorizer, p, sample); + }; + } return *this; }