diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-06-21 12:20:34 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-06-21 12:20:34 +0100 |
| commit | 8a36eb498e1a1c2cf2e886356faa4ce67e52e874 (patch) | |
| tree | 92e44b4d4ddef68ff91d35f44ca57a9d45e7f879 /modules/generic_error.ccm | |
| download | nihil-8a36eb498e1a1c2cf2e886356faa4ce67e52e874.tar.gz nihil-8a36eb498e1a1c2cf2e886356faa4ce67e52e874.tar.bz2 | |
initial commit
Diffstat (limited to 'modules/generic_error.ccm')
| -rw-r--r-- | modules/generic_error.ccm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/modules/generic_error.ccm b/modules/generic_error.ccm new file mode 100644 index 0000000..a582519 --- /dev/null +++ b/modules/generic_error.ccm @@ -0,0 +1,26 @@ +/* + * This source code is released into the public domain. + */ + +module; + +#include <format> +#include <stdexcept> + +export module nihil:generic_error; + +namespace nihil { + +/* + * generic_error is the base class that all other exceptions derive from. + * It is an std::runtime_error, and what() should always be informative. + */ + +export struct generic_error : std::runtime_error { + template<typename... Args> + generic_error(std::format_string<Args...> fmt, Args &&...args) + : std::runtime_error(std::format(fmt, std::forward<Args>(args)...)) + {} +}; + +} // namespace nihil |
