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
显式地提供了一个带有无抛出说明符的空实现。
问:这有必要吗?或者与让编译器生成隐式析构函数相比,这是一个好习惯吗?