#ifndef VTR_ERROR_H #define VTR_ERROR_H #include #include namespace vtr { class VtrError : public std::runtime_error { public: VtrError(std::string msg = "", std::string new_filename = "", size_t new_linenumber = -1) : std::runtime_error(msg) , filename_(new_filename) , linenumber_(new_linenumber) {} //Returns the filename associated with this error //returns an empty string if none is specified std::string filename() const { return filename_; } const char* filename_c_str() const { return filename_.c_str(); } //Returns the line number associated with this error //returns zero if none is specified size_t line() const { return linenumber_; } private: std::string filename_; size_t linenumber_; }; } // namespace vtr #endif