如何创建boost :: unordered_map的子类?

时间:2013-07-21 05:26:45

标签: c++ templates generics subclass

我正在尝试子类boost :: unordered_map(因此我可以捕获异常,而不会使异常捕获的逻辑混乱我的程序)。我已成功包装了boost :: unordered_map,但我想尝试创建一个子类。

无论如何,我无法确定正确的子类语法。

以下不起作用:

template<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
         typename Pred = std::equal_to<Key>,
         typename Alloc = std::allocator<std::pair<Key const, Mapped>> >
class unordered_map : public boost::unordered_map<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
                                                  typename Pred = std::equal_to<Key>,
                                                  typename Alloc = std::allocator<std::pair<Key const, Mapped>> >
{

};

1 个答案:

答案 0 :(得分:1)

#include <boost/unordered_map.hpp>

template<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
         typename Pred = std::equal_to<Key>,
         typename Alloc = std::allocator<std::pair<Key const, Mapped> > >
class my_unordered_map : public boost::unordered_map<Key, Mapped, Hash,Pred,Alloc>
{

};

void main(){
    my_unordered_map<int,int> kk;
}