Lines Matching refs:template

39 template <typename T> struct Void { typedef void Type; };
44 template <bool Cond> struct BoolType {
56 template <bool C> struct SelectIfImpl { template <typename T1, typename T2> struct Apply { typedef …
57 template <> struct SelectIfImpl<false> { template <typename T1, typename T2> struct Apply { typedef…
58 template <bool C, typename T1, typename T2> struct SelectIfCond : SelectIfImpl<C>::template Apply<T…
59 template <typename C, typename T1, typename T2> struct SelectIf : SelectIfCond<C::Value, T1, T2> {};
61 template <bool Cond1, bool Cond2> struct AndExprCond : FalseType {};
62 template <> struct AndExprCond<true, true> : TrueType {};
63 template <bool Cond1, bool Cond2> struct OrExprCond : TrueType {};
64 template <> struct OrExprCond<false, false> : FalseType {};
66 template <typename C> struct BoolExpr : SelectIf<C,TrueType,FalseType>::Type {};
67 template <typename C> struct NotExpr : SelectIf<C,FalseType,TrueType>::Type {};
68 template <typename C1, typename C2> struct AndExpr : AndExprCond<C1::Value, C2::Value>::Type {};
69 template <typename C1, typename C2> struct OrExpr : OrExprCond<C1::Value, C2::Value>::Type {};
74 template <typename T> struct AddConst { typedef const T Type; };
75 template <bool Constify, typename T> struct MaybeAddConst : SelectIfCond<Constify, const T, T> {};
76 template <typename T> struct RemoveConst { typedef T Type; };
77 template <typename T> struct RemoveConst<const T> { typedef T Type; };
83 template <typename T, typename U> struct IsSame : FalseType {};
84 template <typename T> struct IsSame<T, T> : TrueType {};
86 template <typename T> struct IsConst : FalseType {};
87 template <typename T> struct IsConst<const T> : TrueType {};
89 template <typename CT, typename T>
94 template <typename T> struct IsPointer : FalseType {};
95 template <typename T> struct IsPointer<T*> : TrueType {};
102 template <typename B, typename D> struct IsBaseOf
107 template<typename B, typename D> struct IsBaseOfImpl {
114 template <typename T>
126 template <typename B, typename D> struct IsBaseOf
135 template <bool Condition, typename T = void> struct EnableIfCond { typedef T Type; };
136 template <typename T> struct EnableIfCond<false, T> { /* empty */ };
138 template <bool Condition, typename T = void> struct DisableIfCond { typedef T Type; };
139 template <typename T> struct DisableIfCond<true, T> { /* empty */ };
141 template <typename Condition, typename T = void>
144 template <typename Condition, typename T = void>
149 template <typename T> struct RemoveSfinaeTag;
150 template <typename T> struct RemoveSfinaeTag<SfinaeTag&(*)(T)> { typedef T Type; };