#pragma once #include <cstdarg> #include <exception> #include <memory> class Exception : public std::exception { public: Exception(const char * fmt, ...); const char * what(); protected: Exception() = default; void va_format(va_list args, const char * fmt); std::unique_ptr<char> error = NULL; };