我使用 libc++,发现在公共部分中有 std::shared_ptr::make_shared()
静态成员函数。当我已经定义了类型别名到 std::shared_ptr
的特化时,它非常方便:
using T = int;
using P = std::shared_ptr< T >;
auto p = P::make_shared(123); // <=> std::make_shared< T >(123)
static_assert(std::is_same< decltype(p), P >::value);
我担心标准合规性,因为来自可信来源的文章(1,2)没有提到 std::shared_ptr
的静态成员函数 make_shared
。
目前使用该函数是否不好?为什么?