¿Por qué usar un método de inicialización en lugar de un constructor?

Acabo de ingresar a una nueva compañía y gran parte del código base utiliza métodos de inicialización en lugar de constructores.

struct MyFancyClass : theUberClass
{
    MyFancyClass();
    ~MyFancyClass();
    resultType initMyFancyClass(fancyArgument arg1, classyArgument arg2, 
                                redundantArgument arg3=TODO);
    // several fancy methods...
};

Me dijeron que esto tenía algo que ver con el tiempo. Que hay que hacer algunas cosasdespués construcción que fallaría en el constructor. Pero la mayoría de los constructores están vacíos y realmente no veo ninguna razón para no usar constructores.

Entonces me dirijo a ti, oh magos de C ++: ¿por qué usarías un método init en lugar de un constructor?

Respuestas a la pregunta(10)

Su respuesta a la pregunta