gau*_*waj 4 c++ visual-c++ c++11 c++14
#include <iostream>
using namespace std;
class NoConstructOperation
{
protected:
NoConstructOperation() = default;
virtual ~NoConstructOperation() = default;
public:
NoConstructOperation(const NoConstructOperation&) = delete;
NoConstructOperation& operator =(NoConstructOperation&) = delete;
NoConstructOperation(NoConstructOperation&&) = delete;
NoConstructOperation& operator = (NoConstructOperation&&) = delete;
};
class Myclass:public NoConstructOperation
{
};
int main() {
static_assert(!std::is_trivially_destructible<Myclass>::value, "Compiler provided destructor is public: Please declare it private");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我不继承Myclass与NoConstructOperation上面的代码给出了静态断言编译错误.
但是如果我Myclass使用NoConstructOperation is_trivially_destructiblecheck 继承不起作用,即使Myclass构造函数是公共的.这段代码编译,是什么原因?