#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;
};