Я играю с указателями c ++ 11, и я не понимаю, почему такое использование shared_ptr недопустимо.
std::shared_ptr<int> i{ std::make_shared<int>(1) };
Я получаю The function is declared 'noexcept' but calls function 'make_shared<int,int>' which may throw exceptions(f.6)
Если я добавлю его в свой конструктор, который также не является исключением, он также явно не принимается.
JobLogger() noexcept {
this->i = std::make_shared<int>();
}
В исходном коде shared_ptr я вижу, что пустой конструктор - noexcept constexpr shared_ptr() noexcept {}
, так как Я инициализирую i
при построении JobLogger?