2016-04-25 13 views
1

Boost unordered map containerのラッパーメソッドを作成しました。私のラッパーでは、テンプレート化されたラッパーを作成しようとしていました。蟻の助けpls。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'この型を式として不正に使用します。

また、私は

はそれがunordered_mapまたは後押しする引数::どのように、テンプレートを使用することをお勧めし、1つのmoerの事を知っていただきたいと思います。

答えて

1

あなたは名前引数のを逃している - あなたは現在だけのタイプを使用している:

template <class Tkey, class Tvalue> 
unordered_map::iterator CHashMap<Tkey, Tvalue>::SetAt(Tkey key, Tvalue value) 
//              ^^^^  ^^^^^^ 
{ 
    m_HashMap.insert(std::make_pair(key, value)); 
//         ^^^ ^^^^^ 
} 
関連する問題