debian: Update build depends
[senf.git] / Packets / ParseHelpers.ih
index c3afdee..7e67282 100644 (file)
@@ -90,9 +90,7 @@
 # define SENF_PARSER_FIELD_RO_fix(name, type) SENF_PARSER_FIELD_I(name, type, fix, ro, public)
 #
 # define SENF_PARSER_P_FIELD_var(name, type)    SENF_PARSER_FIELD_I(name, type, var, rw, private)
-# define SENF_PARSER_P_FIELD_RO_var(name, type) SENF_PARSER_FIELD_I(name, type, var, ro, private)
 # define SENF_PARSER_P_FIELD_fix(name, type)    SENF_PARSER_FIELD_I(name, type, fix, rw, private)
-# define SENF_PARSER_P_FIELD_RO_fix(name, type) SENF_PARSER_FIELD_I(name, type, fix, ro, private)
 #
 # define SENF_PARSER_FIELD_I(name, type, ofstype, rwtype, access)                                 \
     access:                                                                                       \
 # ////////////////////////////////////////
 # // SENF_PARSER_I_FIELD_INIT_*
 #
-# define SENF_PARSER_I_FIELD_INIT_rw(name, type, access)                                                  \
+# define SENF_PARSER_I_FIELD_INIT_rw(name, type, access)                                          \
     private:                                                                                      \
         void init_chain(senf::mpl::rv<BOOST_PP_CAT(name,_index)>*) const {                        \
             init_chain(static_cast<senf::mpl::rv<BOOST_PP_CAT(name,_index)-1>*>(0));              \
         }                                                                                         \
     access:
 #
-# define SENF_PARSER_I_FIELD_INIT_ro(name, type, access)                                                  \
+# define SENF_PARSER_I_FIELD_INIT_ro(name, type, access)                                          \
     private:                                                                                      \
         void init_chain(senf::mpl::rv<BOOST_PP_CAT(name,_index)>*) const {                        \
             init_chain(static_cast<senf::mpl::rv<BOOST_PP_CAT(name,_index)-1>*>(0));              \
         }
 #
 # define SENF_PARSER_I_FIELD_VAL_ro(name, type, access)                                           \
+    private:                                                                                      \
+        BOOST_PP_CAT(name, _t) BOOST_PP_CAT(name, _)() const {                                    \
+            return parse<type>( SENF_PARSER_OFFSET(name) );                                       \
+        }                                                                                         \
+    access:                                                                                       \
         BOOST_PP_CAT(name, _t)::value_type name() const {                                         \
-            return parse<type>( SENF_PARSER_OFFSET(name) ).value();                               \
+            return BOOST_PP_CAT(name,_)();                                                        \
         }
 #
 # ///////////////////////////////////////////////////////////////////////////
 # // SENF_PARSER_CUSTOM_FIELD_*
 #
-# define SENF_PARSER_CUSTOM_FIELD_var(name, type, size, isize)                                     \
+# define SENF_PARSER_CUSTOM_FIELD_var(name, type, size, isize)                                    \
       SENF_PARSER_CUSTOM_FIELD_I(name, type, size, isize, var)
-# define SENF_PARSER_CUSTOM_FIELD_fix(name, type, size)                                            \
+# define SENF_PARSER_CUSTOM_FIELD_fix(name, type, size)                                           \
       SENF_PARSER_CUSTOM_FIELD_I(name, type, size, size, fix)
 #
 # define SENF_PARSER_CUSTOM_FIELD_I(name, type, size, isize, ofstype)                             \
 #
 # define SENF_PARSER_P_BITFIELD_var(name, bits, type)                                             \
       SENF_PARSER_BITFIELD_I(name, bits, type, var, rw, private)
-# define SENF_PARSER_P_BITFIELD_RO_var(name, bits, type)                                          \
-      SENF_PARSER_BITFIELD_I(name, bits, type, var, ro, private)
 # define SENF_PARSER_P_BITFIELD_fix(name, bits, type)                                             \
       SENF_PARSER_BITFIELD_I(name, bits, type, fix, rw, private)
-# define SENF_PARSER_P_BITFIELD_RO_fix(name, bits, type)                                          \
-      SENF_PARSER_BITFIELD_I(name, bits, type, fix, ro, private)
 #
 # ////////////////////////////////////////
 # // SENF_PARSER_BITFIELD_I