私はクラス Chromosome を作成しましたが、これは単に ostream 演算子を使用した vector のラッパーになったため、代わりに typedef vector を使用することにしました。ただし、テンプレート化された ostream オペレーターに問題があります...これが最善の方法ですか? (私はいくつかのアプローチを見てきましたが、どれもうまくいきませんでした)
template<typename G>
class Chromosome {
public:
typedef typename std::vector<G> type;
typedef typename std::pair<type *,type *> ptr_pair;
};
template<typename G> //line 19 below:
std::ostream& operator<<(std::ostream& os, const Chromosome<G>::type& chromosome) {
for(auto iter = chromosome.begin(); iter != chromosome.end(); ++iter)
std::cout << *iter;
return os;
}
現時点で私が得ているエラーは次のとおりです。
chromosome.h:19: error: expected unqualified-id before ‘&’ token
chromosome.h:19: error: expected ‘)’ before ‘&’ token
chromosome.h:19: error: expected initializer before ‘&’ token
乾杯。