Inicialización de miembros usando constructor delegado

Empecé a probar el estándar C ++ 11 y encontréesta pregunta que describe cómo llamar a su ctor desde otro ctor en la misma clase para evitar tener un método init o similar. Ahora estoy intentando lo mismo con el código que se ve así:

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)
{
}

Pero esto me está dando el error:In constructor ‘config::Tokenizer::Tokenizer(std::stringstream*)’: /path/Tokenizer.cpp:14:20: error: mem-initializer for ‘config::Tokenizer::lines’ follows constructor delegation He intentado mover la parte Tokenizer () primero y la última en la lista, pero eso no ayudó.

¿Cuál es la razón detrás de esto y cómo debo arreglarlo? He intentado mover ellines(lines) al cuerpo conthis->lines = lines; en su lugar y funciona bien. Pero realmente me gustaría poder usar la lista de inicializadores.

¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta