00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_SIMPLE_VISITOR_FWD_HH
00021 #define PALUDIS_GUARD_PALUDIS_UTIL_SIMPLE_VISITOR_FWD_HH 1
00022
00023 #include <paludis/util/type_list-fwd.hh>
00024
00025 namespace paludis
00026 {
00027 template <typename TypeList_>
00028 struct DeclareAbstractVisitMethods;
00029
00030 template <>
00031 struct DeclareAbstractVisitMethods<TypeListTail>;
00032
00033 template <typename TypeList_>
00034 struct WrappedVisitorBase;
00035
00036 template <typename RealClass_, typename TypeList_>
00037 struct ImplementVisitMethods;
00038
00039 template <typename RealClass_>
00040 struct ImplementVisitMethods<RealClass_, TypeListTail>;
00041
00042 template <typename TypeList_, typename UnwrappedVisitor_>
00043 struct WrappedVoidResultVisitor;
00044
00045 template <typename TypeList_, typename Result_, typename UnwrappedVisitor_>
00046 struct WrappedNonVoidResultVisitor;
00047
00048 template <typename BaseClass_, typename VisitableTypeList_>
00049 struct DeclareAbstractAcceptMethods;
00050
00051 template <typename BaseClass_, typename RealClass_>
00052 struct ImplementAcceptMethods;
00053 }
00054
00055 #endif