Inicialização de membro ao usar o construtor delegado

Eu comecei a experimentar o padrão C ++ 11 e eu encontreiisto pergunta que descreve como chamar seu ctor de outro ctor na mesma classe para evitar ter um método init ou algo semelhante. Agora eu estou tentando a mesma coisa com código que se parece com isso:

hpp:

class Tokenizer
{
public:
  Tokenizer();
  Tokenizer(std::stringstream *lines);
  virtual ~Tokenizer() {};
private:
  std::stringstream *lines;
};

cpp:

Tokenizer::Tokenizer()
  : expected('=')
{
}

Tokenizer::Tokenizer(std::stringstream *lines)
  : Tokenizer(),
    lines(lines)
{
}

Mas isso está me dando o erro:In constructor ‘config::Tokenizer::Tokenizer(std::stringstream*)’: /path/Tokenizer.cpp:14:20: error: mem-initializer for ‘config::Tokenizer::lines’ follows constructor delegation Eu tentei mover a parte do Tokenizer () primeiro e último na lista, mas isso não ajudou.

Qual é a razão por trás disso e como devo corrigi-lo? Eu tentei mover olines(lines) para o corpo comthis->lines = lines; em vez disso e funciona bem. Mas eu realmente gostaria de poder usar a lista de inicializadores.

Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion