Я создал класс Chromosome, который оказался просто оболочкой для вектора с оператором ostream, поэтому вместо этого я решил использовать вектор typedef. Однако у меня проблемы с шаблонным оператором 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
Ваше здоровье.