namespace QuantLib {
//! Base error class
class Error : public std::exception {
public:
/*! The explicit use of this constructor is not advised.
Use the QL_FAIL macro instead.
*/
Error(const std::string& file,
long line,
const std::string& functionName,
const std::string& message = "");
/*! the automatically generated destructor would
not have the throw specifier.
*/
~Error() throw() {}
//! returns the error message.
const char* what() const throw ();
private:
boost::shared_ptr<std::string> message_;
};
}
コメントからわかるように、クラスのデストラクタはError
明示的に no-throw 指定子を持つ空の実装を提供します。
質問: これは必要ですか? それとも、コンパイラに暗黙のデストラクタを生成させるのと比較して、これは良い習慣ですか?