void writeElement(const type &element, const Parameters &) \
{ \
expand(); \
if (true == initialize_structure_) \
{ \
NameValuePairHandler<t_NameValuePair>::name((*name_value_pairs_)[index_]) = node_stack_.back().node_; \
if (true == node_stack_.back().isArray()) \
{ \
NameValuePairHandler<t_NameValuePair>::name((*name_value_pairs_)[index_]) += "_"; \
NameValuePairHandler<t_NameValuePair>::name((*name_value_pairs_)[index_]) += \
boost::lexical_cast<std::string>(node_stack_.back().index_); \
} \
} \
NameValuePairHandler<t_NameValuePair>::value((*name_value_pairs_)[index_]) = element; \
++index_; \
}