Ctor Initializer: a auto-inicialização causa falha?

Foi difícil depurar uma falha na produção. Só queria confirmar com o pessoal aqui sobre a semântica. Temos uma classe como ...

class Test {
public:
  Test()
  {
    // members initialized ...
    m_str = m_str;
  }
  ~Test() {}
private:
  // other members ...
  std::string m_str;
};

Alguém mudou a inicialização para usar listas de inicialização do ctor, o que é razoavelmente correto na nossa semântica de códigos. A ordem de inicialização e seu valor inicial estão corretos, entre outras coisas. Então a classe parece ...

class Test {
public:
  Test() 
    : /*other inits ,,, */ m_str(m_str)
  {
  }
  ~Test() {}
private:
  // other members ...
  std::string m_str;
};

Mas o código de repente começou a falhar! Eu isolei a longa lista de inits nesse pedaço de códigom_str(m_str). Confirmei isso viaTexto do link.

Tem que travar? O que o padrão diz sobre isso? (É um comportamento indefinido?)

questionAnswers(5)

yourAnswerToTheQuestion