Утечка памяти в spdlog make_shared?
Я обнаружил утечку памяти в моем приложении и обнаружил что-то, чего не понимаю.
Настройка журнала с использованием spdlog аналогична приведенной ниже в readme:
sinks
это std::vector<spdlog::sink_ptr>
,
std::shared_ptr<spdlog::logger> logger = std::make_shared<spdlog::logger>("LogName", std::begin(sinks), std::end(sinks));
Но это дает утечку памяти (как обнаружил valgrind). Однако, если я сделаю это:
spdlog::logger* log = new spdlog::logger("LogName", std::begin(sinks), std::end(sinks));
std::shared_ptr<spdlog::logger> logger = std::shared_ptr<spdlog::logger>(log);
Я не получаю утечки. Почему это может быть? Я использую std::make_shared
неправильно?