Eu tenho um construtor que leva alguns argumentos. Eu supus que eles foram construídos na ordem listada, mas em um caso parece que eles estavam sendo construídos ao contrário, resultando em um abortamento. Quando eu invertai os argumentos, o programa parou de abortar. Este é um exemplo da sintaxe que estou usando. O problema é que a_ precisa ser inicializado antes de b neste caso. Você pode garantir a ordem de construção?
por exemplo
class A
{
public:
A(OtherClass o, string x, int y) :
a_(o), b_(a_, x, y) { }
OtherClass a_;
AnotherClass b_;
};