私の特別なケースはカスタムイテレータを伴いますが、この質問は一般的なものです。 (すなわち<T>
を入れ独自の型を返すテンプレートクラスメソッドの正しい署名
template<typename T>
struct MyIterator {
size_t loc;
MyIterator<T> operator++(int) {
MyIterator<T> temp(*this);
++loc;
return temp;
}
};
2つの他の構成も正常に動作:
template<typename T>
struct MyIterator {
size_t loc;
MyIterator operator++(int) {
MyIterator temp(*this);
++loc;
return temp;
}
};
これはコンパイルが、そうこれを行います。私はこの後置インクリメントメソッドの戻り値の型を作成する方法がわかりませんよMyIterator
のインスタンスの1つのみ)。これを書くには "正しい"方法がありますか?それは問題ですか?
問題ではありません。あなたが見ているのは*注入されたクラス名です* – NathanOliver