diff --git a/src/validator/error.h b/src/validator/error.h index 5c16e236d..1865d10c4 100644 --- a/src/validator/error.h +++ b/src/validator/error.h @@ -27,10 +27,11 @@ class validator_error : public std::exception { public: - validator_error(std::string file, int line, std::string message) { - file_ = file; - line_ = line; - message_ = message; + validator_error(std::string file, int line, std::string message) + : file_(file), line_(line), message_(message) { + std::stringstream ss; + ss << "[" << file_ << ":" << line_ << "] " << message_; + what_ = ss.str(); } int get_line() { @@ -46,9 +47,7 @@ class validator_error : public std::exception { } virtual const char* what() const throw() { - std::stringstream ss; - ss << "[" << file_ << ":" << line_ << "] " << message_; - return ss.str().c_str(); + return what_.c_str(); } private: @@ -56,6 +55,7 @@ class validator_error : public std::exception { std::string message_; std::string file_; int line_; + std::string what_; };