diff --git a/ostd/unordered_map.hh b/ostd/unordered_map.hh index 5ce1a55..f537f7b 100644 --- a/ostd/unordered_map.hh +++ b/ostd/unordered_map.hh @@ -30,7 +30,6 @@ struct ranged_traits const> { template inline std::unordered_map make_unordered_map(R range) { - /* TODO: specialize for contiguous ranges and matching value types */ std::unordered_map ret; for (; !range.empty(); range.pop_front()) { ret.emplace(range.front()); @@ -42,11 +41,11 @@ template inline std::unordered_map< typename RangeValue::first_type, typename RangeValue::second_type -> make_unordered_map(R range) { +> make_unordered_map(R &&range) { return make_unordered_map< typename RangeValue::first_type, typename RangeValue::second_type - >(std::move(range)); + >(std::forward(range)); } } /* namespace ostd */ diff --git a/ostd/vector.hh b/ostd/vector.hh index 143cd8b..a1766bf 100644 --- a/ostd/vector.hh +++ b/ostd/vector.hh @@ -37,8 +37,8 @@ inline std::vector make_vector(R range) { } template -inline std::vector> make_vector(R range) { - return make_vector>(std::move(range)); +inline std::vector> make_vector(R &&range) { + return make_vector>(std::forward(range)); } } /* namespace ostd */