skiplistコンテナライブラリをリリースしました。そして、Sunのコンパイラは、この文句:テンプレート関数のテンプレート引数
template <class T, class R>
bool operator==(const IndexedSkipList<T,R> &left, const IndexedSkipList<T,R> &right)
{
return ((left.size() == right.size()) &&
(std::equal(left.begin(), left.end(), right.begin())));
}
エラーは以下のとおりです。
"include/CSIndexedSkipList.h", line 65: Error: Too few arguments for template std::reverse_iterator<CS::BidiIdxIterator<CS::IndexedSkipList<CS::T, CS::R>>>.
"include/CSIndexedSkipList.h", line 207: Where: While specializing "CS::IndexedSkipList<CS::T, CS::R>".
"include/CSIndexedSkipList.h", line 207: Where: Specialized in non-template code.
上記のコードは、207から始まるものです。しかし、reverse_iterator文句だと思われます。私は本当にそれを理解できません。私はSunのコンパイラに直接アクセスすることはできないので、私は何か間違っているのだろうかと思っていました。
:また、私はreverse_iterator内の1つのテンプレート引数を使用していますが、私は私も見てきたどこでも二番目の引数T.にはデフォルトがないことを言ってSGIのマニュアルを参照して気づいた、彼らはこれを使用します
typedef std::reverse_iterator<iterator> reverse_iterator;
これは、コンパイラが不平を言う行65です。パラメータとしてTを追加する必要がありますか?私は問題のエラーを理解することはできません。
これは、私が見つけることができるすべてのプラットフォーム上でgccで動作します。また、Borlandでも同様に動作します。