/** \file
\brief VariantParser internal header */
-#ifndef IH_VariantParser_
-#define IH_VariantParser_ 1
+#ifndef IH_SENF_Packets_VariantParser_
+#define IH_SENF_Packets_VariantParser_ 1
// Custom includes
#include "PacketParser.hh"
# define SENF_PARSER_VARIANT_I(access, name, chooser, types) \
SENF_PARSER_REQUIRE_VAR(variant) \
- private: \
+ protected: \
typedef boost::mpl::vector< BOOST_PP_SEQ_ENUM(SENF_PARSER_VARIANT_TYPES(types)) > \
BOOST_PP_CAT(name, _parsers); \
+ private: \
typedef BOOST_PP_CAT(SENF_PARSER_COLLECTION_GETAUX(chooser), _t)::value_type \
BOOST_PP_CAT(name,_chooser_value_type); \
BOOST_PP_IF( SENF_PARSER_VARIANT_NEEDTRANSFORM(types), \
BOOST_PP_CAT(name, _traits); \
public: \
SENF_PARSER_COLLECTION_I( \
- BOOST_PP_IIF( SENF_PARSER_VARIANT_NEEDACCESSORS(types), private, access), \
+ BOOST_PP_IIF( SENF_PARSER_VARIANT_NEEDACCESSORS(types), protected, access), \
name, chooser, BOOST_PP_CAT(name, _traits) ); \
access: \
BOOST_PP_SEQ_FOR_EACH_I(SENF_PARSER_VARIANT_ACCESSOR, name, types) \
template <BOOST_PP_CAT(name, _chooser_value_type) (*KeyFn)()> \
struct BOOST_PP_CAT(name, _key_value_template) \
: public senf::detail::VariantKey<BOOST_PP_CAT(name, _chooser_value_type), KeyFn> {}; \
- template <class T, T (*K)()> friend class senf::detail::VariantKey; \
+ template <class T, T (*K)()> friend class senf::detail::VariantKey; \
typedef senf::detail::VariantKeyTransform< \
BOOST_PP_CAT(name,_chooser_value_type), \
boost::mpl::vector< \