Это зависит от того, что находится в // ...
.
Каждый тривиальный конструктор является неявно объявленным конструктором по умолчанию, но не каждый неявно объявленный конструктор по умолчанию является тривиальным конструктором.Класс X имеет тривиальный деструктор, если он имеет неявное значение по умолчанию, и каждый из его базовых классов имеет неявное значение по умолчанию (а также базовые классы этих базовых классов,и т. д.), и каждый из его членов является либо примитивом, подобным int
, либо имеет тип с неявным значением по умолчанию (как и члены его членов, и так далее, а такжекак базовые классы его членов, их базовые классы и т. д., так же как и члены его базовых классов, и их члены, и т. д., и т. д., и т. д.).
Может быть проще взглянуть на это с другой стороны: если класс не не имеет тривиального конструктора, то ни один класс не расширяет его ("is-a") или не включает его ("has-a")") имеет тривиальный конструктор.