X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FConfig.ih;h=a850fdea4f848de373e15ba193ffde9078736130;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=f2f67774eef3886ba57526f8e77c4358fc0edf20;hpb=778234c9180629e8985cf2395692124d957a9e5c;p=senf.git diff --git a/Utils/Logger/Config.ih b/Utils/Logger/Config.ih index f2f6777..a850fde 100644 --- a/Utils/Logger/Config.ih +++ b/Utils/Logger/Config.ih @@ -23,8 +23,8 @@ /** \file \brief Config internal header */ -#ifndef IH_Config_ -#define IH_Config_ 1 +#ifndef IH_SENF_Utils_Logger_Config_ +#define IH_SENF_Utils_Logger_Config_ 1 // Custom includes #include @@ -33,6 +33,7 @@ #include #include #include +#include #include "../preprocessor.hh" ///////////////////////////////ih.p//////////////////////////////////////// @@ -74,7 +75,15 @@ namespace detail { }}} -#define SENF_LOG_SEQ_TO_NAME_(s,state,elem) state::elem +#define SENF_LOG_CHECK_NA_ + +#define SENF_LOG_CAT(a,b) SENF_LOG_CAT_I(a,b) +#define SENF_LOG_CAT_I(a,b) a ## b + +#define SENF_LOG_IS_NA(elt) BOOST_PP_IS_EMPTY( SENF_LOG_CAT(SENF_LOG_CHECK_NA, elt) ) + +#define SENF_LOG_SEQ_TO_NAME_(s,state,elem) \ + BOOST_PP_IF( SENF_LOG_IS_NA(elem), senf::log::detail::na, state::elem ) #define SENF_LOG_SEQ_TO_NAME(seq) \ BOOST_PP_SEQ_FOLD_LEFT(SENF_LOG_SEQ_TO_NAME_, , seq) @@ -88,7 +97,7 @@ namespace detail { BOOST_PP_SEQ_POP_BACK(seq) ) #define SENF_LOG_PREDECL_short(seq) \ - class SENF_PP_SEQ_BACK(seq); + BOOST_PP_IF( SENF_LOG_IS_NA( SENF_PP_SEQ_BACK(seq) ), ; , class SENF_PP_SEQ_BACK(seq); ) #define SENF_LOG_PREDECL(seq) \ BOOST_PP_CAT(SENF_LOG_PREDECL_, \ @@ -110,14 +119,12 @@ namespace detail { #ifdef SENF_LOG_CONF -# define _ senf::log::detail::na # define SLC_elt(r, data, elt) \ SENF_LOG_CONF_DEFINE elt BOOST_PP_SEQ_FOR_EACH(SLC_elt, none, SENF_LOG_CONF) # undef SLC_elt -# undef _ #endif