Используя 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) из надежного источника ничего не говорит о статической функции-члене make_shared
из std::shared_ptr
.
Плохо ли использовать эту функцию в настоящее время? Почему?
make_shared
дляstd::shared_ptr
где-то в пространстве имен пользователя. 29.01.2016