1
我正在为Boost无序映射容器编写包装器方法。在我的封装器中,我试图编写一个模板化封装器。对于下面提到的代码,我在VS 2010中收到了编译错误,如下所示。蚂蚁一个帮助请求。在unordered_map中插入模板值时出错提升
template< class Tkey, class Tvalue>
class CHashMap
{
unordered_map<Tkey, Tvalue> m_HashMap;
};
template< class Tkey, class Tvalue>
unordered_map::iterator CHashMap<Tkey, Tvalue>::SetAt(Tkey, Tvalue)
{
m_HashMap.insert(std::make_pair(Tkey, Tvalue));
}
void main()
{
CHashMap<std::string, std::string> m_mymap;
m_mymap.SetAt("1","Some value");
}
错误C2275:'Tkey'非法使用此类型作为表达式。
错误C2275:'TValue'非法使用此类型作为表达式。
此外,我想知道一个MOER件事,
是它更好地使用模板作为参数传递给unordered_map或升压::任何。