}
template <class ElementParser, class AuxPolicy>
+prefix_ void
+senf::detail::ListBParser_Policy<ElementParser,AuxPolicy>::container_policy::
+construct(container_type & c)
+ const
+{}
+
+template <class ElementParser, class AuxPolicy>
+prefix_ void
+senf::detail::ListBParser_Policy<ElementParser,AuxPolicy>::container_policy::
+destruct(container_type & c)
+ const
+{}
+
+template <class ElementParser, class AuxPolicy>
prefix_ void senf::detail::ListBParser_Policy<ElementParser,AuxPolicy>::container_policy::
erase(container_type & c, data_iterator p)
{
size_type size (data_iterator i, state_type s) const;
void init (data_iterator i, state_type s);
- void erase (container_type & c, data_iterator p);
- void insert (container_type & c, data_iterator p);
- void update (container_type const & c) const;
+ void construct (container_type & c) const;
+ void destruct (container_type & c) const;
+ void erase (container_type & c, data_iterator p);
+ void insert (container_type & c, data_iterator p);
+ void update (container_type const & c) const;
/** \brief Internal: ListBParser specific iterator data */
struct iterator_data {};
template <class ElementParser, class AuxPolicy>
prefix_ void
+senf::detail::ListNParser_Policy<ElementParser,AuxPolicy>::construct(container_type & c)
+ const
+{}
+
+template <class ElementParser, class AuxPolicy>
+prefix_ void
+senf::detail::ListNParser_Policy<ElementParser,AuxPolicy>::destruct(container_type & c)
+ const
+{}
+
+template <class ElementParser, class AuxPolicy>
+prefix_ void
senf::detail::ListNParser_Policy<ElementParser,AuxPolicy>::erase(container_type & c,
data_iterator p)
const
size_type size (data_iterator i, state_type s) const;
void init (data_iterator i, state_type s) const;
- void erase (container_type & c, data_iterator p) const;
- void insert (container_type & c, data_iterator p) const;
- void update (container_type const & c) const;
+ void construct (container_type & c) const;
+ void destruct (container_type & c) const;
+ void erase (container_type & c, data_iterator p) const;
+ void insert (container_type & c, data_iterator p) const;
+ void update (container_type const & c) const;
/** Internal: ListNParser iterator specific data */
struct iterator_data {
ListParser_Container(parser_type const & list)
: ListPolicy(static_cast<typename parser_type::policy const &>(list)),
state_(list.state()), i_(std::distance(data().begin(),list.i()))
-{}
+{
+ ListPolicy::construct(*this);
+}
template <class ListPolicy>
prefix_ senf::ListParser_Container<ListPolicy>::~ListParser_Container()
{
ListPolicy::update(*this);
+ ListPolicy::destruct(*this);
}
// Accessors