std::make_shared количество параметров в конструкторе

При отсутствии вариативных шаблонов (по-прежнему!) в Visual Studio 2010/2011 конструктор, принимающий множество параметров, может быть проблематичным. Например, следующее не будет компилироваться:

    MyMaterials.push_back(std::make_shared<Material>(MyFacade,
                                                     name,
                                                     ambient,
                                                     diffuse,
                                                     specular,
                                                     emissive,
                                                     opacity,
                                                     shininess,
                                                     shininessStrength,
                                                     reflectivity,
                                                     bumpScaling,
                                                     maps,
                                                     mapFlags));

, потому что у него 13 параметров, и я думаю, что make_shared ограничен от arg0 до arg9. Очевидным обходным решением является конструкция из двух частей, но я надеялся избежать этого. Есть ли здесь какая-то другая возможность, кроме использования newвместо make_shared?

Спасибо.

10
задан Alex Z 4 April 2012 в 14:02
поделиться