boost::multi_boundary
// In header: <boost/iterator/segment_iterator.hpp> template<typename B1, typename Converter, typename B2> struct multi_boundary { // types typedef B1::input_type input_type; // construct/copy/destruct multi_boundary(); multi_boundary(B1, Converter, B2); // public member functions BOOST_CONCEPT_ASSERT((BoundaryCheckerConcept< B1 >)); BOOST_CONCEPT_ASSERT((ConverterConcept< Converter >)); BOOST_CONCEPT_ASSERT((BoundaryCheckerConcept< B2 >)); BOOST_CONCEPT_ASSERT((Convertible< typename B1::input_type, typename Converter::input_type >)); BOOST_CONCEPT_ASSERT((Convertible< typename Converter::output_type, typename B2::input_type >)); template<typename In> bool operator()(In, In, In); };
Model of BoundaryChecker
constructed from two models of BoundaryChecker
with a model of Converter
applied in the middle.
multi_boundary
public member functionsBOOST_CONCEPT_ASSERT((BoundaryCheckerConcept< B1 >));
BOOST_CONCEPT_ASSERT((ConverterConcept< Converter >));
BOOST_CONCEPT_ASSERT((BoundaryCheckerConcept< B2 >));
BOOST_CONCEPT_ASSERT((Convertible< typename B1::input_type, typename Converter::input_type >));
BOOST_CONCEPT_ASSERT((Convertible< typename Converter::output_type, typename B2::input_type >));
template<typename In> bool operator()(In begin, In end, In pos);