C++ MSVC std:_Pad无虚拟析构函数

C++ MSVC std:_Pad无虚拟析构函数,c++,visual-c++,c++11,windows-8,C++,Visual C++,C++11,Windows 8,我正在使用 Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x64 当我这么做的时候 #include <mutex> #include <condition_variable> 我需要升级到MSVC的更新版本吗?您不需要更新 这是一个警告,在使用虚拟函数时可能很重要。如果在派生类中分配内存,则需要一个虚拟析构函数,并在对象销毁时释放内存。使用std::mutex您是安全的(此处有大量

我正在使用

Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x64
当我这么做的时候

#include <mutex>
#include <condition_variable>

我需要升级到MSVC的更新版本吗?

您不需要更新

这是一个警告,在使用虚拟函数时可能很重要。如果在派生类中分配内存,则需要一个虚拟析构函数,并在对象销毁时释放内存。使用std::mutex您是安全的(此处有大量免责声明)

您可以使用#pragma warning来消除此警告。如果将警告视为错误,则必须消除警告,但决不能降低编译器警告级别:

#pragma warning(push)
#pragma warning(disable:4265)
#include <mutex>
#pragma warning(pop)
#pragma警告(推送)
#杂注警告(禁用:4265)
#包括
#布拉格警告(pop)

小心地围绕警告,你不想对整个文件禁用警告,你可能会错过一些重要的警告。

@t.C.希望我能否决你的评论,因为这个URL现在已经死了。你应该复制解决方案。
#pragma warning(push)
#pragma warning(disable:4265)
#include <mutex>
#pragma warning(pop)