Ответ 1
страница enable_if doc говорит:
Конструкторы и деструкторы не иметь тип возврата; дополнительный аргумент является единственным вариантом.
Перегружены ли деструкторы?
Перегружены ли деструкторы?
Ответ прост. Нет.
Две версии деструктора не могут сосуществовать в теле class
.
Однако, в отличие от популярного мнения, обратите внимание, что деструктор имеет 2 синтаксиса.
struct E {
~E(); // syntax-1
~E() throw(); // syntax-2
};
Синтаксис-2 менее популярен. Но это обязательно, если деструктор базового класса содержит аналогичный синтаксис. Лучшим примером является наследование std::exception
.
Обратите внимание, что несоблюдение такого синтаксиса приводит к:
error: looser throw specifier для 'virtual E:: ~ E()