Initialisierung der Mitgliedsvariablen shared_ptr, new vs make_shared?

Beim Initialisieren einer shared_ptr-Membervariablen:

<code>// .h
class Customer
{
public:
  Customer();

private:
  std::shared_ptr<OtherClass> something_;
}

// .cpp
Customer():
  something_(new OtherClass())
{
}
</code>

gegen

<code>Customer():
  something_(std::make_shared<OtherClass>())
{
}
</code>

Ist die make_shared Version erlaubt? Ich scheine immer die erste Version zu sehen, die bevorzugt wird?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage