Por que usar um método de inicialização em vez de um construtor?

Acabei de entrar em uma nova empresa e grande parte da base de código usa métodos de inicialização em vez de construtores.

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

Eles me disseram que isso tinha algo a ver com o tempo. Que algumas coisas precisam ser feitasdepois de construção que falharia no construtor. Mas a maioria dos construtores está vazia e não vejo realmente nenhuma razão para não usar construtores.

Então, eu volto para você, oh assistentes do C ++: por que você usaria um método init em vez de um construtor?

questionAnswers(10)

yourAnswerToTheQuestion