diff options
Diffstat (limited to 'src/crepe/Exception.h')
-rw-r--r-- | src/crepe/Exception.h | 17 |
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" |