template<typename Concept, typename T = _self> class any;
template<typename Concept, typename T> class any<, >;
template<typename Concept, typename T> class any<, >;
template<typename Concept, typename T> class any<, >;
typedef any< Concept, T & > ;
typedef any< Concept, const T & > ;
typedef any< Concept, T && > ;
}
}
template<typename T, typename Concept, typename Tag>
T (any< Concept, Tag > &);
template<typename T, typename Concept, typename Tag>
T (const any< Concept, Tag > &);
template<typename T, typename Concept, typename Tag>
T (any< Concept, Tag > *);
template<typename T, typename Concept, typename Tag>
T (const any< Concept, Tag > *);
}
}
template<typename Concept> class binding;
}
}
template<typename Concept, typename T>
const binding< Concept > & (const any< Concept, T > &);
}
}
template<typename Concept, typename Op, U>
(const binding< Concept > &, const Op &, U &&...);
template<typename Op, U> (const Op &, U &&...);
}
}
template<typename Concept, typename Op, U>
bool (const binding< Concept > &, const Op &, U &&...);
template<typename Op, U> bool (const Op &, U &&...);
}
}
template<typename Concept, typename Base, typename ID,
typename Enable = void>
struct concept_interface;
}
}
template<typename T> struct concept_of;
typedef typename ::boost::type_erasure::concept_of< T >:: ;
}
}
template<typename Metafunction> struct deduced;
}
}
template<typename T> struct derived;
typedef typename ;
}
}
template<typename R, typename Any> R (Any &&);
template<typename R, typename Any, typename Map>
R (Any &&, const static_binding< Map > &);
}
}
template<typename T> bool (const T &);
}
}
template<typename Sub, typename Super, typename PlaceholderMap = void>
struct is_subconcept;
}
}
template<typename T = _self, typename U = T> struct add_assignable;
template<typename T = _self, typename U = T, typename R = T> struct addable;
template<typename T = _self, typename U = T> struct bitand_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct bitandable;
template<typename T = _self, typename U = T> struct bitor_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct bitorable;
template<typename T = _self, typename U = T> struct bitxor_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct bitxorable;
template<typename T = _self, typename R = T> struct complementable;
template<typename T = _self> struct decrementable;
template<typename R, typename T = _self> struct dereferenceable;
template<typename T = _self, typename U = T, typename R = T>
struct dividable;
template<typename T = _self, typename U = T> struct divide_assignable;
template<typename T = _self, typename U = T> struct equality_comparable;
template<typename T = _self> struct incrementable;
template<typename Is, typename T = _self> struct istreamable;
template<typename T = _self, typename U = T> struct left_shift_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct left_shiftable;
template<typename T = _self, typename U = T> struct less_than_comparable;
template<typename T = _self, typename U = T> struct mod_assignable;
template<typename T = _self, typename U = T, typename R = T> struct modable;
template<typename T = _self, typename U = T, typename R = T>
struct multipliable;
template<typename T = _self, typename U = T> struct multiply_assignable;
template<typename T = _self, typename R = T> struct negatable;
template<typename Os, typename T = _self> struct ostreamable;
template<typename T = _self, typename U = T> struct right_shift_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct right_shiftable;
template<typename R, typename T = _self, typename N> struct subscriptable;
template<typename T = _self, typename U = T> struct subtract_assignable;
template<typename T = _self, typename U = T, typename R = T>
struct subtractable;
}
}
template<typename Any, typename T> struct as_param;
template<typename Concept, typename T> class param;
typedef typename ::boost::type_erasure::as_param< Any, T >:: ;
}
}
template<typename T> struct placeholder_of;
typedef typename ::boost::type_erasure::placeholder_of< T >:: ;
}
}
template<typename Any, typename T> struct rebind_any;
typedef typename ::boost::type_erasure::rebind_any< Any, T >:: ;
}
}
template<typename Concept, typename Map>
void (const static_binding< Map > &);
template<typename Concept, typename T> void ();
}
}
template<typename Concept, typename Op, U>
void (const binding< Concept > &, const Op &, U &&...);
template<typename Op, U> void (const Op &, U &&...);
}
}
template<typename T, typename U> struct same_type;
}
}
template<typename Concept, T> class tuple;
template< N, typename Concept, T>
any< Concept, TN > & (tuple< Concept, );
template< N, typename Concept, T>
const any< Concept, TN > & (const tuple< Concept, );
}
}
template<typename Concept, typename T>
const (const any< Concept, T > &);
template<typename T, typename Concept>
const (const binding< Concept > &);
}
}