Почему вот такой код срабатывает
class SequenceFunctor: public unary_function<const Dna&,void>
{
public:
SequenceFunctor(int length_sequence=3):m_length_seq(length_sequence)
{};
void operator()(const Dna&d)
{
...
}
protected:
int m_length_seq;
};
void SequenceAnalise::analise(const Population&p)
{
SequenceFunctor csf;
SequenceFunctor result=for_each(p.begin(),p.end(),csf);
}
А такой нет
void SequenceAnalise::analise(const Population&p)
{
class SequenceFunctor: public unary_function<const Dna&,void>
{
public:
SequenceFunctor(int length_sequence=3):m_length_seq(length_sequence)
{};
void operator()(const Dna&d)
{
...
}
protected:
int m_length_seq;
};
SequenceFunctor csf;
SequenceFunctor result=for_each(p.begin(),p.end(),csf);
}
компилятор: gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)