KeyValuePair(K k, V v) : key(std::move(k)), value(std::move(v)) {} to template<typename KK, typename VV> KeyValuePair(KK&& k, VV&& v) : key(std::forward<KK>(k)), value(std::forward<VV>(v)) {}