The exception safety is mentioned as a reason for R.23 but not for R.22. Is it because make_shared does less in preventing memory leaks compared to make_unique or is it simply omitted?
class X {
public:
X() { throw std::runtime_error(); }
};
void f() {
unique_ptr<X> p1 { new X() };
shared_ptr<X> p2 { new X() };
}