aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/Exception.h
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-14 11:26:12 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-14 11:26:12 +0100
commit01c09a196c3f3e5cefaa4119a95a1cdeb7b9c263 (patch)
tree5667369a85bd06b683c67de42bf0311c2647912b /src/crepe/Exception.h
parent6e13510f3c6d4155707f748d237bb1fa05243450 (diff)
parent8600b8a29351aae26ec7b22f84aeeef92d8cb421 (diff)
merge `loek/cleanup` into `loek/audio`
Diffstat (limited to 'src/crepe/Exception.h')
-rw-r--r--src/crepe/Exception.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/crepe/Exception.h b/src/crepe/Exception.h
index 6473043..580fc16 100644
--- a/src/crepe/Exception.h
+++ b/src/crepe/Exception.h
@@ -1,22 +1,31 @@
#pragma once
#include <exception>
+#include <format>
#include <string>
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 char * what() const noexcept;
protected:
Exception() = default;
+
//! Formatted error message
std::string error;
};
} // namespace crepe
+
+#include "Exception.hpp"