7

在标准库或 Boost 中,是否存在某种实用程序基类,用于使用所需的 typedef(size_type、value_type 等)填充自定义 STL 兼容序列。我正在考虑类似boost::iterator_facade的东西,但是对于容器。

我打算自己卷起来,但想确保这样的东西不存在。

更新:

这是我想出的实用程序基类,以防有人发现它有用:

template <class C>
class ContainerAdapter
{
public:
    typedef C::value_type value_type;
    typedef C::reference reference;
    typedef C::const_reference const_reference;
    typedef C::const_iterator iterator;
    typedef C::const_iterator const_iterator;
    typedef C::difference_type difference_type;
    typedef C::size_type size_type;

protected:
    typedef C::container_type;
};


// Usage
class MyCustomContainer : public ContainerAdapter< std::vector<int> >
{
...
};

ContainerAdapter 只是“回显”自定义容器的底层容器的嵌套 typedef。这没什么,真的。

4

1 回答 1

1

即使它确实存在,您仍然必须typedef typename base::size_type size_type. 看来你不会有太多收获。

于 2011-01-27T22:27:10.797 回答