Inicjowanie zmiennej member_ptr, new vs make_shared?
Podczas inicjowania zmiennej członkowskiej shared_ptr:
// .h
class Customer
{
public:
Customer();
private:
std::shared_ptr<OtherClass> something_;
}
// .cpp
Customer():
something_(new OtherClass())
{
}
vs.
Customer():
something_(std::make_shared<OtherClass>())
{
}
Czy dozwolona jest wersja make_shared? Zawsze wydaje mi się, że widzę pierwszą wersję, która jest preferowana?