From 8a36eb498e1a1c2cf2e886356faa4ce67e52e874 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Sat, 21 Jun 2025 12:20:34 +0100 Subject: initial commit --- modules/generic_error.ccm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 modules/generic_error.ccm (limited to 'modules/generic_error.ccm') 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 +#include + +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 + generic_error(std::format_string fmt, Args &&...args) + : std::runtime_error(std::format(fmt, std::forward(args)...)) + {} +}; + +} // namespace nihil -- cgit v1.2.3