1#ifndef __MC_MACRO_HPP__
2#define __MC_MACRO_HPP__
4#define CHECK_MODEL(name) \
5 static_assert(ModelType<name>, #name); \
6 static_assert(FloatingPointType<name::FloatType>, " floatl" #name);
8#define MODEL_CONSTANT static constexpr
11#define INDEX_FROM_ENUM(e) static_cast<std::size_t>((e))
14#define CHECK_BOUND(__index__, __array_name__) \
15 static_assert(INDEX_FROM_ENUM(__index__) < __array_name__.static_extent(1), \
16 "Index out of model bound");
19#define GET_PROPERTY_FROM(__index__, __array_name__, enum_name) \
20 __array_name__(__index__, INDEX_FROM_ENUM(enum_name))
22#define GET_PROPERTY(enum_name) GET_PROPERTY_FROM(idx, arr, enum_name)
24#define GET_INDEX(size) \
25 std::size_t idx = team_handle.league_rank() * team_handle.team_size() + team_handle.team_rank(); \