From e6958bf2dd925a152713b5f538bd196e6d4b5c91 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Thu, 21 Nov 2019 08:42:47 +0700 Subject: [PATCH] remove boost seq head using --- headers/enum.hpp/enum.hpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/headers/enum.hpp/enum.hpp b/headers/enum.hpp/enum.hpp index f8dbdbe..a5b12ee 100644 --- a/headers/enum.hpp/enum.hpp +++ b/headers/enum.hpp/enum.hpp @@ -6,13 +6,9 @@ #pragma once -#include - #include #include -#include - namespace enum_hpp { class exception final : public std::runtime_error { @@ -155,6 +151,15 @@ namespace enum_hpp::detail #define ENUM_HPP_PP_STRINGIZE(x) ENUM_HPP_PP_STRINGIZE_I(x) #define ENUM_HPP_PP_STRINGIZE_I(x) #x +// +// ENUM_HPP_PP_SEQ_HEAD +// + +#define ENUM_HPP_PP_SEQ_HEAD(seq) ENUM_HPP_PP_SEQ_HEAD_II((ENUM_HPP_PP_SEQ_HEAD_I seq)) +#define ENUM_HPP_PP_SEQ_HEAD_I(x) x, ENUM_HPP_PP_NOTHING +#define ENUM_HPP_PP_SEQ_HEAD_II(p) ENUM_HPP_PP_SEQ_HEAD_III p +#define ENUM_HPP_PP_SEQ_HEAD_III(x, _) x + // // ENUM_HPP_PP_SEQ_TAIL // @@ -190,8 +195,8 @@ namespace enum_hpp::detail #define ENUM_HPP_PP_SEQ_FOR_EACH_I(m, d, n, s) ENUM_HPP_PP_SEQ_FOR_EACH_II(m, d, n, s) #define ENUM_HPP_PP_SEQ_FOR_EACH_II(m, d, n, s) ENUM_HPP_PP_SEQ_FOR_EACH_ ## n (m, d, s) -#define ENUM_HPP_PP_SEQ_FOR_EACH_1(m, d, s) m(d, BOOST_PP_SEQ_HEAD(s)) -#define ENUM_HPP_PP_SEQ_FOR_EACH_2(m, d, s) m(d, BOOST_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_1(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) -#define ENUM_HPP_PP_SEQ_FOR_EACH_3(m, d, s) m(d, BOOST_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_2(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) -#define ENUM_HPP_PP_SEQ_FOR_EACH_4(m, d, s) m(d, BOOST_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_3(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) -#define ENUM_HPP_PP_SEQ_FOR_EACH_5(m, d, s) m(d, BOOST_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_4(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_1(m, d, s) m(d, ENUM_HPP_PP_SEQ_HEAD(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_2(m, d, s) m(d, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_1(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_3(m, d, s) m(d, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_2(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_4(m, d, s) m(d, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_3(m, d, ENUM_HPP_PP_SEQ_TAIL(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_5(m, d, s) m(d, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_4(m, d, ENUM_HPP_PP_SEQ_TAIL(s))