51 const std::string& message =
"");
57 const char* what()
const noexcept;
58 const std::string& condition()
const noexcept {
return condition_; }
59 const std::string& message()
const noexcept {
return message_; }
62 const std::string condition_;
63 const std::string message_;
71 OSError(
const std::string& message,
const std::string& description);
75 virtual const std::string& message()
const {
return message_; }
76 virtual const std::string& description()
const {
return description_; }
78 const char* what()
const noexcept {
return completeMessage_.c_str(); }
82 const std::string message_;
83 const std::string description_;
84 const std::string completeMessage_;
97 virtual const std::string& message()
const {
return message_; }
98 const char* what()
const noexcept {
return message_.c_str(); }
103 const std::string message_;
117 const std::string& message()
const;
118 virtual const char* what()
const noexcept;
127 std::shared_ptr<ErrorReport> err_;
A thing that can be pretty-printed.
Declaration of the fabrique::Printable interface.
virtual void PrettyPrint(Bytestream &, size_t indent=0) const
Print a human-readable representation to an output stream and return that output stream.
Base class for exceptions related to invalid source code.
Some code may choose to throw this exception rather than assert() out.
An error that has an OS-specific description.
A mixin type for something that has a location in source code.
Declaration of fabrique::HasSource, fabrique::SourceLocation and fabrique::SourceRange.
virtual void PrettyPrint(Bytestream &, size_t indent=0) const override
Print a human-readable representation to an output stream and return that output stream.
A non-exceptional representation of a problem in source code.
virtual void PrettyPrint(Bytestream &, size_t indent=0) const override
Print a human-readable representation to an output stream and return that output stream.
A syntactic error is present in the Fabrique description.
A ostream-like class that may support formatting.
A range of characters in source code.
A semantic error is present in the Fabrique description.