コンテナアダプターを作成しようとしています。派生クラスの基本クラスの型定義も使用したいと思います。だから私は次のことを試しました...
template <class CONTAINER> class SequenceComposite {
protected:
CONTAINER m_data;
public:
typedef typename CONTAINER::size_type size_type;
// ...
};
template <class DTYPE>
class VectorComposite : public virtual SequenceComposite< std::vector<DTYPE> > {
public:
size_type capacity() const { m_data.capacity(); }
// ...
};
このエラーが発生しました...
error: ‘size_type’ does not name a type
note: (perhaps ‘typename SequenceComposite<std::vector<T> >::size_type’ was intended) // yes, it was
基本クラスのtypedefを使用することをコンパイラーに伝えるにはどうすればよいですか?