以下のコードはコンパイルされません。
//in definition
typedef double value_type;
//in implementation
template <typename T>
typename value_type sequence<T>::current( )
{
return data[used-1];
}
「typename value_type」を「double」に置き換えると、コードがコンパイルされ、期待どおりに動作します。value_type を double と同等に割り当てているのに、double の代わりに typename value_type を使用できないのはなぜですか?