Index: boost/spirit/home/support/iterators/detail/combine_policies.hpp =================================================================== --- boost/spirit/home/support/iterators/detail/combine_policies.hpp (revision 76337) +++ boost/spirit/home/support/iterators/detail/combine_policies.hpp (working copy) @@ -41,6 +41,7 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Ownership::swap(x); @@ -48,6 +49,13 @@ this->Input::swap(x); this->Storage::swap(x); } + + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } }; #else /////////////////////////////////////////////////////////////////////////// @@ -78,6 +86,7 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Ownership::swap(x); @@ -85,6 +94,13 @@ this->Input::swap(x); this->Storage::swap(x); } + + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } }; /////////////////////////////////////////////////////////////////////////// @@ -105,6 +121,7 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Ownership::swap(x); @@ -112,6 +129,13 @@ this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // implement input policy functions by forwarding to the Input type template inline static void advance_input(MultiPass& mp) @@ -148,6 +172,7 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Ownership::swap(x); @@ -155,14 +180,17 @@ this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // checking policy functions are forwarded to the Checking type template inline static void docheck(MultiPass const& mp) { Checking::docheck(mp); } - - template - inline static void clear_queue(MultiPass& mp) - { Checking::clear_queue(mp); } }; /////////////////////////////////////////////////////////////////////////// @@ -182,12 +210,20 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Ownership::swap(x); this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // implement input policy functions by forwarding to the Input type template inline static void advance_input(MultiPass& mp) @@ -209,10 +245,6 @@ template inline static void docheck(MultiPass const& mp) { Checking::docheck(mp); } - - template - inline static void clear_queue(MultiPass& mp) - { Checking::clear_queue(mp); } }; /////////////////////////////////////////////////////////////////////////// @@ -233,6 +265,7 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Checking::swap(x); @@ -240,6 +273,13 @@ this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // ownership policy functions are forwarded to the Ownership type template inline static void clone(MultiPass& mp) @@ -271,12 +311,20 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Checking::swap(x); this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // implement input policy functions by forwarding to the Input type template inline static void advance_input(MultiPass& mp) @@ -325,21 +373,25 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Input::swap(x); this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // checking policy functions are forwarded to the Checking type template inline static void docheck(MultiPass const& mp) { Checking::docheck(mp); } - template - inline static void clear_queue(MultiPass& mp) - { Checking::clear_queue(mp); } - // ownership policy functions are forwarded to the Ownership type template inline static void clone(MultiPass& mp) @@ -370,11 +422,19 @@ Input::destroy(mp); Storage::destroy(mp); } + void swap(multi_pass_unique& x) { this->Storage::swap(x); } + template + inline static void clear_queue(MultiPass& mp) + { + Checking::clear_queue(mp); + Storage::clear_queue(mp); + } + // implement input policy functions by forwarding to the Input type template inline static void advance_input(MultiPass& mp) @@ -397,10 +457,6 @@ inline static void docheck(MultiPass const& mp) { Checking::docheck(mp); } - template - inline static void clear_queue(MultiPass& mp) - { Checking::clear_queue(mp); } - // ownership policy functions are forwarded to the Ownership type template inline static void clone(MultiPass& mp)