这个问题已知:
Memory Leaks on Windows using VLD · Issue #2255 · google/googletest · GitHub
那么解决办法是什么呢?一个折中的办法是这样的。
TEST() {VLDMarkAllLeaksAsReported();{/// 待测代码std::string s = ...;}VLDReportLeaks();
}class MyTestSuite : public testing::TestWithParam<...>
{
public:static void SetUpTestSuite() { VLDMarkAllLeaksAsReported(); }static void TearDownTestSuite() { VLDReportLeaks(); }
};
反思:有时好好看看代码库的头文件,也许可以找到解决办法。