Когда я наследую от std::exception
, чтобы определить свой собственный тип исключения, мне нужно переопределить метод what()
, который имеет следующую подпись:
virtual const char* what() const throw();
Это определенно выглядит странно, как если бы в подписи было два имени метода. Это какой-то очень специфический синтаксис, как с чисто виртуальными методами, например:
virtual int method() const = 0;
или это особенность, которую можно каким-то образом использовать и в другом контексте? И если да, то для чего он может быть использован?