【发布时间】:2013-08-13 23:06:50
【问题描述】:
我正在尝试创建一个从std::map 或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 调用它时,即使手动指定 all 模板类型名,clang++ 3.4 会说:
模板模板参数的模板参数与其对应的模板模板参数不同。
【问题讨论】:
标签: c++ templates c++11 types typename