aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/Exception.h
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-13 14:35:27 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-13 14:35:27 +0100
commit1df510f4a2dbe0fcb8c9f8a34695abf8d33f9ddc (patch)
tree2a901a09957abe1363f5b21ee259036f23f66087 /src/crepe/Exception.h
parentdaf2a06ac778f203e1473431afe09476e8182f65 (diff)
update logging to use C++20 format and classes
Diffstat (limited to 'src/crepe/Exception.h')
-rw-r--r--src/crepe/Exception.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/crepe/Exception.h b/src/crepe/Exception.h
index 80af068..ed3ab15 100644
--- a/src/crepe/Exception.h
+++ b/src/crepe/Exception.h
@@ -2,21 +2,31 @@
#include <exception>
#include <string>
+#include <format>
namespace crepe {
-//! Exception class with printf-style constructor
+//! Exception class
class Exception : public std::exception {
public:
- //! printf
- Exception(const char * fmt, ...);
+ //! Exception with plain message
+ Exception(const std::string & msg);
+
+ //! Exception with \c std::format message
+ template<class... Args>
+ Exception(std::format_string<Args...> fmt, Args&&... args);
+
//! Get formatted error message
const char * what() const noexcept;
protected:
Exception() = default;
+
//! Formatted error message
std::string error;
};
} // namespace crepe
+
+#include "Exception.hpp"
+