aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/Exception.h
diff options
context:
space:
mode:
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"