Используя libС++, я обнаруживаю 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
.
Является ли плохой parctice использовать функцию в настоящее время? Почему?