7

標準ライブラリまたは Boost 内に、カスタム STL 互換シーケンスに必要な typedef (size_type、value_type など) を設定するためのある種のユーティリティ基本クラスがありますか? 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 に答える