I_G>В том-то и дело, что VC сначала new вызывает, а потом только calc_foo_param(). I_G>Поэтому и возник вопрос, так как исключение возникает после фактического распределения памяти.
да, действительно, оказывается так и происходит.
но в любом случае утечки не будет, т.к. выделенная память освободится механизмом обработки исключений. (см. п. 15.2 в стандарте)
кстати auto_ptr<> тут не задействуется, т.к. исключение происходит до вызова его конструктора.