include/ylt/reflection/internal/common_macro.hpp (10 lines of code) (raw):

#pragma once #define YLT_CONCAT_(l, r) l##r #define YLT_CONCAT(l, r) YLT_CONCAT_(l, r) #define CONCAT_MEMBER(t, x) t.x #define CONCAT_ADDR(T, x) &T::x #define CONCAT_NAME(t, x) #x namespace ylt::reflection { template <typename T> struct identity {}; } // namespace ylt::reflection