};
}
-namespace {
+// We can't use the unnamed namespace here since there's a bug in gcc-4.2.3 which is
+// the default version of gcc on ubuntu hardy :-(
+// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34213
+namespace VariantParser_test_cc_anon_namespace {
struct SubParser : public senf::PacketParserBase
{
{
# include SENF_PARSER()
- SENF_PARSER_SKIP_BITS( 4 );
+ SENF_PARSER_BITFIELD_RO( len, 4, unsigned );
SENF_PARSER_BITFIELD_RO( type, 4, unsigned );
- SENF_PARSER_PRIVATE_VARIANT( content_, type,
- ( novalue( nocontent, key(10, senf::VoidPacketParser)) )
- ( id( content, SubParser ) )
+ // just here so the second variant is 'var'
+ SENF_PARSER_VARIANT( value, len,
+ (senf::VoidPacketParser)
+ (senf::UInt8Parser)
+ (senf::UInt16Parser)
+ (senf::UInt32Parser)
+ );
+ SENF_PARSER_VARIANT( content_, type,
+ ( novalue( nocontent, key(10, senf::VoidPacketParser) ) )
+ ( id( content, SubParser ) )
);
SENF_PARSER_FINALIZE(TestParser);
};
}
+using namespace VariantParser_test_cc_anon_namespace;
BOOST_AUTO_UNIT_TEST(VariantParserMacro)
{