Lines Matching refs:typename

31 template<typename From> struct simplify_type {
38 template<typename From> struct simplify_type<const From> {
39 typedef typename simplify_type<From>::SimpleType NonConstSimpleType;
40 typedef typename add_const_past_pointer<NonConstSimpleType>::type
42 typedef typename add_lvalue_reference_if_not_pointer<SimpleType>::type
52 template <typename To, typename From, typename Enabler = void>
60 template <typename To, typename From>
62 typename enable_if<
69 template <typename To, typename From> struct isa_impl_cl {
75 template <typename To, typename From> struct isa_impl_cl<To, const From> {
81 template <typename To, typename From> struct isa_impl_cl<To, From*> {
88 template <typename To, typename From> struct isa_impl_cl<To, From*const> {
95 template <typename To, typename From> struct isa_impl_cl<To, const From*> {
102 template <typename To, typename From> struct isa_impl_cl<To, const From*const> {
109 template<typename To, typename From, typename SimpleFrom>
115 typename simplify_type<SimpleFrom>::SimpleType>::doit(
120 template<typename To, typename FromTy>
136 typename simplify_type<const Y>::SimpleType>::doit(Val);
173 typedef typename cast_retty<To, SimpleFrom>::ret_type ret_type;
179 typedef typename cast_retty_impl<To,FromTy>::ret_type ret_type;
184 typedef typename cast_retty_wrap<To, From,
185 typename simplify_type<From>::SimpleType>::ret_type ret_type;
193 static typename cast_retty<To, From>::ret_type doit(From &Val) {
195 typename simplify_type<SimpleFrom>::SimpleType>::doit(
202 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
203 typename cast_retty<To, FromTy>::ret_type Res2
204 = (typename cast_retty<To, FromTy>::ret_type)const_cast<FromTy&>(Val);
211 is_same<X, typename simplify_type<X>::SimpleType>::value;
222 inline typename enable_if_c<!is_simple_type<Y>::value,
223 typename cast_retty<X, const Y>::ret_type>::type
227 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
231 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
234 typename simplify_type<Y>::SimpleType>::doit(Val);
238 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
241 typename simplify_type<Y*>::SimpleType>::doit(Val);
248 inline typename cast_retty<X, Y*>::ret_type cast_or_null(Y *Val) {
264 inline typename enable_if_c<!is_simple_type<Y>::value,
265 typename cast_retty<X, const Y>::ret_type>::type
271 inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
276 inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
284 inline typename cast_retty<X, Y*>::ret_type dyn_cast_or_null(Y *Val) {