В this ответ T.C. состоянияЧто такое make_shared неизвестного размера?
boost::make_shared
и т.д. Поддержка типов массивов - либо один из неизвестных размера, или один из фиксированного размера
boost::shared_ptr<int[]> sh_arr2 = boost::make_shared<int[]>(30);
boost::shared_ptr<int[30]> sh_arr3 = boost::make_shared<int[30]>();
Во-первых, как можно make_shared поддерживать тип массива неизвестного размера? Я бы подумал, что размер массива не требуется.
Во-вторых, какая разница между sh_arr2 и sh_arr3? Кажется, что они создают массив размера int 30.