我正在尝试创建一个从 astd::map
或a 获取密钥的函数std::unordered_map
。我可以使用简单的重载,但首先我很想知道这段代码有什么问题。
template<typename K, typename V, template<typename, typename> class TContainer>
std::vector<K> getKeys(const TContainer<K, V>& mMap)
{
std::vector<K> result;
for(const auto& itr(std::begin(mMap)); itr != std::end(mMap); ++itr) result.push_back(itr->first);
return result;
}
当使用 调用它时std::unordered_map
,甚至手动指定所有模板类型名,clang++ 3.4 说:
模板模板参数的模板参数与其对应的模板模板参数不同。