2024-01-29 10:59:55 +00:00
|
|
|
#ifndef muz_COMMONS_HPP
|
|
|
|
#define muz_COMMONS_HPP
|
|
|
|
|
2024-01-30 18:09:57 +00:00
|
|
|
#include <cassert>
|
|
|
|
#include <mutex>
|
|
|
|
#include <algorithm>
|
|
|
|
#include <functional>
|
|
|
|
#include <iostream>
|
|
|
|
#include <sstream>
|
2024-01-29 10:59:55 +00:00
|
|
|
#include <string>
|
2024-01-30 18:09:57 +00:00
|
|
|
#include <cstring>
|
|
|
|
#include <optional>
|
|
|
|
#include <stdexcept>
|
|
|
|
#include <vector>
|
|
|
|
#include <memory>
|
|
|
|
#include <cmath>
|
|
|
|
|
2024-01-29 10:59:55 +00:00
|
|
|
#include "conf.hpp"
|
|
|
|
|
2024-01-30 18:09:57 +00:00
|
|
|
#define MUZ_ERROR(NAME) \
|
|
|
|
struct NAME : public std::runtime_error { \
|
|
|
|
explicit NAME(std::string const& what): std::runtime_error(what) {} \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define MUZ_ENUM_IDENT(X) X
|
|
|
|
#define MUZ_ENUM_STRING(X) #X
|
|
|
|
|
|
|
|
#define MUZ_ENUM(Prefix, Macro) \
|
|
|
|
enum Prefix {Macro(MUZ_ENUM_IDENT)}; \
|
|
|
|
constexpr char const* Prefix ## Str [] = {Macro(MUZ_ENUM_STRING)};
|
|
|
|
|
|
|
|
|
2024-01-29 10:59:55 +00:00
|
|
|
#endif
|