В STL есть некоторые функции, начинающиеся с префикса make_
, например std::make_pair
, std::make_shared
, std::make_unique
и т.д. Почему лучше использовать их вместо простого использования конструктора?
auto pair2 = std::pair< int, double >( 1, 2.0 );
auto pair3 = std::make_pair( 1, 2.0 );
std::shared_ptr< int > pointer1 = std::shared_ptr< int >( new int( 10 ) );
std::shared_ptr< int > pointer2 = std::make_shared< int >( 10 );
- Я просто вижу, что эти функции делают код немного короче, но это все?
- Есть ли другие преимущества?
- Эти функции безопаснее использовать?