ココが厳しいよMinGW part4 内部テンプレートクラスの宣言方法

studiokingyo2004-09-08

さてさて、早速 何処が厳しいのかって?
以下のプログラムをどうぞ。



template<class T >
class gapbuffer : protected std::vector<T,std::allocator<T> >
{
public:
typedef std::allocator<T> A;
typedef gapbuffer<T> self_type;
#endif

typedef std::vector<T,A> base_type;

typedef typename base_type::size_type size_type;

typedef typename base_type::value_type value_type;

typedef typename base_type::reference reference;
typedef typename base_type::const_reference const_reference;

typedef typename base_type::pointer pointer;
typedef typename base_type::const_pointer const_pointer;

typedef typename base_type::iterator base_iterator;
typedef typename base_type::const_iterator const_base_iterator;
private:
//unsigned int -> size_type;
size_type gb_, ge_;
const size_type initGapSize_;
public:

template<class T,typename Traits,typename Boss>
class iterator_base : public std::random_access_iterator_tag {
public:

typedef T value_type;
//typedef typename Traits::value_type value_type;
typedef typename Traits::pointer pointer;
typedef typename Traits::reference reference;

typedef iterator_base<
T,
policy::non_const_traits<T>
,Boss
> iterator;
//以下略

さて、何処をミスっているのでしょう?私はまったくわかりません・・・。
しかし、どうも

template<class T,typename Traits,typename Boss>
らへんがエラッているぞ!との警告が・・・。
ウーム。さて、どうする?

とりあえず、内部クラスのテンプレート引数Tを_Tに変えてみました。

そしたら無事にコンパイル通るじゃありませんか。ヽ(`Д´)ノムキィ