Мы можем инициализировать shared_pointer тремя способами.
1. shared_ptr<int>p(new int(8));
2. shared_ptr<int>p=shared_ptr<int>(8);
3. shared_ptr<int>p=make_shared<int>(8);
Мы знаем, что 3-й оператор имеет преимущество перед 1-м оператором в плане инициализации одной операции и поддержки обработки исключений.
Есть ли разница между 1-м и 2-м утверждениями в зависимости от выданного исключения, производительности и т. Д.