このリンクされた質問は、make_shared<>関数とshared_ptr<>コンストラクターが異なるかどうかを尋ねました。
答えの一部は、make_shared<>通常、ポイントされたオブジェクトとスマート ポインター制御ブロックの両方に 1 回の割り当てでメモリを割り当てることでした。コンストラクターは 2 つのshared_ptr<>割り当てを使用します。
cppreferenceは、コンストラクターがそうする必要があると述べていますが、理由は示されていません。
どうしてこれなの?何らかの理由でそれは不可能ですか?それとも、他の理由で標準で禁止されていますか?