1

我正在尝试对 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>> >
{

};
4

1 回答 1

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;
}
于 2013-07-21T07:59:45.470 回答