对 unique_ptr 使用强化静态代码分析时发生内存泄漏

Memory leak when using fortify static code analyser for unique_ptr

在 fortify 静态代码分析器中使用 c++11 中的 std::unique_ptr 导致内存泄漏。

void *httpServerThread(void *arg)
{
  
    std::unique_ptr <int> i(new int(1));
    return NULL;
}

同时,下面的代码显示没有内存泄漏。

void *httpServerThread(void *arg)
{
  
    int * i  = new int(1);
    delete i;
    return NULL;
}

因为没有 std::make_unique,所以没有 new 就无法创建 std::unique_ptr。我使用的是 19.2.0 版本的 fortify -> Fortify_SCA_and_Apps_19.2.0。 欢迎任何建议。

显示的函数中没有内存泄漏。该消息是误报。


Since there is no std::make_unique, there is no way to create std::unique_ptr without new.

请注意,您可以编写自己的 make_unique。当然,该函数必须使用 new,但别无他法。