Visitors
[Utilities]


Files

file  visitor-fwd.hh
file  visitor.hh
file  visitor_cast.hh

Namespaces

namespace  visitor_internals
namespace  paludis::visitor_cast_internals

Classes

class  paludis::visitor_internals::ConstAcceptInterface< H_ >
class  paludis::visitor_internals::ConstAcceptInterfaceVisitsThis< H_, T_ >
class  paludis::visitor_internals::AcceptInterface< H_ >
class  paludis::visitor_internals::AcceptInterfaceVisitsThis< H_, T_ >
class  paludis::visitor_internals::TreeLeaf< H_, T_ >
class  paludis::visitor_internals::TreeSequence< H_, T_ >
class  paludis::visitor_internals::ConstTreeSequence< H_, T_ >
class  paludis::visitor_internals::Visits< T_ >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< NoType< u_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< const NoType< u_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< TreeLeaf< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< const TreeLeaf< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< TreeSequence< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< const TreeSequence< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< ConstTreeSequence< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::Visits< const ConstTreeSequence< H_, T_ > >
struct  paludis::visitor_internals::TreeSequenceIteratorTypes< H_ >
class  paludis::visitor_internals::ProxyVisits< H_, LargerH_, T_ >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, NoType< u_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, const NoType< u_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, const TreeLeaf< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, TreeLeaf< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, const ConstTreeSequence< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, const TreeSequence< H_, T_ > >
class  paludis::visitor_internals::paludis::visitor_internals::ProxyVisits< H_, LargerH_, TreeSequence< H_, T_ > >
class  paludis::visitor_internals::ConstProxyVisitor< H_, LargerH_ >
class  paludis::visitor_internals::ProxyVisitor< H_, LargerH_ >
class  paludis::visitor_internals::ConstProxyIterator< H_, LargerH_ >
class  paludis::visitor_internals::ProxyIterator< H_, LargerH_ >
class  paludis::visitor_internals::VisitorTypes< Heirarchy_, BasicNode_, ContainedItem1_, ContainedItem2_, ContainedItem3_, ContainedItem4_, ContainedItem5_, ContainedItem6_, ContainedItem7_, ContainedItem8_, ContainedItem9_, ContainedItem10_, ContainedItem11_, ContainedItem12_, ContainedItem13_, ContainedItem14_, ContainedItem15_, ContainedItem16_, ContainedItem17_, ContainedItem18_, ContainedItem19_, ContainedItem20_, ContainedItem21_, ContainedItem22_, ContainedItem23_, ContainedItem24_, ContainedItem25_, ContainedItem26_, ContainedItem27_, ContainedItem28_, ContainedItem29_, ContainedItem30_ >
class  paludis::visitor_internals::ConstVisitor< H_ >
struct  paludis::visitor_internals::ConstVisitor< H_ >::VisitConstSequence< A_, B_ >
struct  paludis::visitor_internals::ConstVisitor< H_ >::VisitSequence< A_, B_ >
struct  paludis::visitor_internals::ConstVisitor< H_ >::Contains< A_ >
class  paludis::visitor_internals::Visitor< H_ >
struct  paludis::visitor_internals::Visitor< H_ >::VisitSequence< A_, B_ >
struct  paludis::visitor_internals::Visitor< H_ >::Contains< A_ >
struct  paludis::visitor_internals::paludis::visitor_internals::GetConstItemVisits< I_, H_, const NoType< u_ > >
struct  paludis::visitor_internals::paludis::visitor_internals::GetConstItemVisits< I_, H_, const TreeLeaf< H_, T_ > >
struct  paludis::visitor_internals::paludis::visitor_internals::GetConstItemVisits< I_, H_, const ConstTreeSequence< H_, T_ > >
struct  paludis::visitor_internals::paludis::visitor_internals::GetConstItemVisits< I_, H_, const TreeSequence< H_, T_ > >
struct  paludis::visitor_internals::GetConstItemVisitor< I_ >
class  paludis::AcceptVisitor< Visitor_ >
struct  paludis::visitor_cast_internals::GetResult< T_, b_ >
struct  paludis::visitor_cast_internals::paludis::visitor_cast_internals::GetResult< T_, true >
struct  paludis::visitor_cast_internals::VisitorCastVisitorVisits< Result_, Heirarchy_, Item_ >
struct  paludis::visitor_cast_internals::paludis::visitor_cast_internals::VisitorCastVisitorVisits< Result_, Heirarchy_, const NoType< u_ > >
struct  paludis::visitor_cast_internals::paludis::visitor_cast_internals::VisitorCastVisitorVisits< Result_, Heirarchy_, const TreeLeaf< Heirarchy_, Item_ > >
struct  paludis::visitor_cast_internals::paludis::visitor_cast_internals::VisitorCastVisitorVisits< Result_, Heirarchy_, const ConstTreeSequence< Heirarchy_, Item_ > >
struct  paludis::visitor_cast_internals::paludis::visitor_cast_internals::VisitorCastVisitorVisits< Result_, Heirarchy_, const TreeSequence< Heirarchy_, Item_ > >
struct  paludis::visitor_cast_internals::VisitorCastVisitor< Result_, Heirarchy_ >

Functions

template<typename I_>
const I_::Heirarchy::BasicNode * paludis::visitor_internals::get_const_item (const I_ &i)
template<typename Visitor_>
AcceptVisitor< Visitor_ > paludis::accept_visitor (Visitor_ &)
template<typename Result_, typename Item_>
Result_ * paludis::visitor_cast (const Item_ &h)

Detailed Description

Visitors are a way of providing subtype-polymorphic behaviour without modifying the visitable class.

Examples


Function Documentation

template<typename Visitor_>
AcceptVisitor< Visitor_ > PALUDIS_VISIBLE paludis::accept_visitor ( Visitor_ &  v  )  [inline]

Convenience function for using a visitor with a standard algorithm.

Examples:
example_contents.cc, example_dep_label.cc, and example_dep_tree.cc.

template<typename I_>
const I_::Heirarchy::BasicNode * paludis::visitor_internals::get_const_item ( const I_ &  i  )  [inline]

Given a heirarchy node, fetch the associated item.

template<typename Result_, typename Item_>
Result_* paludis::visitor_cast ( const Item_ &  h  )  [inline]

Use a visitor to return either a pointer to the parameter as type Item_, or a zero pointer if the item is not of the correct type.

Since:
0.26
Examples:
example_dep_spec_flattener.cc.

References paludis::visitor_cast_internals::VisitorCastVisitor< Result_, Heirarchy_ >::result.


Generated on Sun Nov 30 23:01:32 2008 for paludis by  doxygen 1.5.5