#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;
}
Если я не наследуют Myclass
с NoConstructOperation
выше код дает ошибку компиляции с статической проверки.
Но если я наследую Myclass
с NoConstructOperation
is_trivially_destructible
проверка не работает, хотя Myclass
конструктор публичный. Этот код компилируется, в чем причина?`is_trivially_destructible` не работает с унаследованного класса
Чего вы хотите достичь этим? – Hayt