#define prefix_
///////////////////////////////ct.p////////////////////////////////////////
-template <class VariantPolicy, SENF_PARSE_VARIANT_TPL_ARGS(class P)>
+template <class AuxPolicy, class Parsers>
template <unsigned N>
-prefix_ void senf::VariantParser<VariantPolicy,SENF_PARSE_VARIANT_TPL_ARGS(P)>::init()
+prefix_ void senf::VariantParser<AuxPolicy,Parsers>::init()
{
- unsigned oldSize( bytes() );
+ size_type oldSize( bytes() );
typedef typename boost::mpl::at<parsers, boost::mpl::int_<N> >::type NewParser;
if (oldSize < senf::init_bytes<NewParser>::value) {
std::advance(j, oldSize);
std::fill(i(), j, 0u);
safe_data_iterator safe_i (*this);
+ typename AuxPolicy::WrapperPolicy safeAux (static_cast<AuxPolicy&>(*this));
data().insert(j, senf::init_bytes<NewParser>::value - oldSize, 0u);
- VariantPolicy::variant(N, safe_i, state());
- NewParser( VariantPolicy::begin(safe_i, state()), state() ).init();
+ safeAux.aux(N, safe_i, state());
+ NewParser( safeAux.adjust(safe_i, state()), state() ).init();
} else {
data_iterator j (i());
std::advance(j, senf::init_bytes<NewParser>::value);
data().erase(j, boost::next(i(), oldSize));
std::fill(i(), j, 0u);
- VariantPolicy::variant(N, i(), state());
- NewParser(VariantPolicy::begin(i(), state()), state()).init();
+ AuxPolicy::aux(N, i(), state());
+ NewParser(AuxPolicy::adjust(i(), state()), state()).init();
}
}
///////////////////////////////ct.e////////////////////////////////////////
#undef prefix_
-\f
+
// Local Variables:
// mode: c++
// fill-column: 100