diff --git a/ostd/algorithm.hh b/ostd/algorithm.hh index 6b83286..180c56e 100644 --- a/ostd/algorithm.hh +++ b/ostd/algorithm.hh @@ -661,7 +661,7 @@ struct MapRange: InputRange< > { private: T p_range; - F p_func; + Decay p_func; public: MapRange() = delete; @@ -757,7 +757,7 @@ struct FilterRange: InputRange< > { private: T p_range; - F p_pred; + Decay p_pred; void advance_valid() { while (!p_range.empty() && !p_pred(front())) p_range.pop_front(); @@ -816,7 +816,7 @@ namespace detail { template inline FilterRange> filter(R range, P pred) { - return FilterRange(range, pred); + return FilterRange(range, move(pred)); } template