这个问题已知:
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(); }
};
反思:有时好好看看代码库的头文件,也许可以找到解决办法。