/** \brief Define bit-field
Bit fields are supported by a special family of parser macros. These macros simplify defining
- fields using the senf::Parse_Int, senf::Parse_UInt and senf::FlagParser parsers by keeping track
- of the current bit position and automatically creating the correct template parameters.
+ fields using the senf::IntFieldParser, senf::UIntFieldParser and senf::FlagParser parsers by
+ keeping track of the current bit position and automatically creating the correct template
+ parameters.
The \a type parameter specifies the type of bitfield to define. This value is one of
\li \c signed, for signed bit fields (senf::IntFieldParser)
type name() const; \
typedef type name##_t;" \
SENF_PARSER_FIELD_RO(name,type)=" \
+ protected: \
+ type name##_() const; \
public: \
type::value_type name() const; \
- typedef type name##_t; \
- protected: \
- type name##_() const;" \
+ typedef type name##_t;" \
SENF_PARSER_BITFIELD(name,bits,type)=" \
senf::ParseField_##type(bits) name() const" \
SENF_PARSER_BITFIELD_RO(name,bits,type)=" \
SENF_PARSER_VARIANT(name,chooser,types)=" \
senf::Parse_Variant_Direct<chooser##_t,?,types>::parser name() const" \
SENF_PARSER_PRIVATE_VARIANT(name,chooser,types)=" \
- private: \
+ protected: \
senf::Parse_Variant_Direct<chooser##_t,?,types>::parser name() const; \
public:" \
SENF_PARSER_VEC_N(name,elt_type,size_type)=" \