私はこのコードを持っています:
template <typename T>
class CircularBuffer
{
public:
typename typedef std::list<T>::iterator iterator;
//other code
};
イテレータ宣言の型名は何をしますか? typedef が「'iterator' と呼びたいリスト イテレータがあります。しかし、typename の目的は何ですか?それは、リストが必要な typename T を格納できるというだけの理由ですか?それは何かのためですか?そうしないと?
ありがとう、
トム
編集:リスト反復子が修飾された依存型であるため、その前に typename が必要ですか? または、より正確には、私が定義している typedef、型 std::list::iterator に基づく 'iterator' は、修飾された依存リストの反復子であるため、修飾された依存型ですか?