Утечка памяти в 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 неправильно?

0 ответов

Другие вопросы по тегам