Index: base/bind_helpers.h |
diff --git a/base/bind_helpers.h b/base/bind_helpers.h |
index 68867c3c609083b6c0b7a890938d8f8e163ddf18..7995124f7bcd303b234cf32f9ec1626f8f92d15e 100644 |
--- a/base/bind_helpers.h |
+++ b/base/bind_helpers.h |
@@ -188,7 +188,7 @@ namespace internal { |
// want to probe for. Then we create a class Base that inherits from both T |
// (the class we wish to probe) and BaseMixin. Note that the function |
// signature in BaseMixin does not need to match the signature of the function |
-// we are probing for; thus it's easiest to just use void(void). |
+// we are probing for; thus it's easiest to just use void(). |
// |
// Now, if TargetFunc exists somewhere in T, then &Base::TargetFunc has an |
// ambiguous resolution between BaseMixin and T. This lets us write the |
@@ -225,8 +225,8 @@ namespace internal { |
// See http://crbug.com/82038. |
template <typename T> |
class SupportsAddRefAndRelease { |
- typedef char Yes[1]; |
- typedef char No[2]; |
+ using Yes = char[1]; |
+ using No = char[2]; |
struct BaseMixin { |
void AddRef(); |
@@ -245,7 +245,7 @@ class SupportsAddRefAndRelease { |
#pragma warning(pop) |
#endif |
- template <void(BaseMixin::*)(void)> struct Helper {}; |
+ template <void(BaseMixin::*)()> struct Helper {}; |
template <typename C> |
static No& Check(Helper<&C::AddRef>*); |
@@ -279,8 +279,8 @@ struct UnsafeBindtoRefCountedArg<T*> |
template <typename T> |
class HasIsMethodTag { |
- typedef char Yes[1]; |
- typedef char No[2]; |
+ using Yes = char[1]; |
+ using No = char[2]; |
template <typename U> |
static Yes& Check(typename U::IsMethod*); |
@@ -390,13 +390,13 @@ class PassedWrapper { |
// Unwrap the stored parameters for the wrappers above. |
template <typename T> |
struct UnwrapTraits { |
- typedef const T& ForwardType; |
+ using ForwardType = const T&; |
static ForwardType Unwrap(const T& o) { return o; } |
}; |
template <typename T> |
struct UnwrapTraits<UnretainedWrapper<T> > { |
- typedef T* ForwardType; |
+ using ForwardType = T*; |
static ForwardType Unwrap(UnretainedWrapper<T> unretained) { |
return unretained.get(); |
} |
@@ -404,7 +404,7 @@ struct UnwrapTraits<UnretainedWrapper<T> > { |
template <typename T> |
struct UnwrapTraits<ConstRefWrapper<T> > { |
- typedef const T& ForwardType; |
+ using ForwardType = const T&; |
static ForwardType Unwrap(ConstRefWrapper<T> const_ref) { |
return const_ref.get(); |
} |
@@ -412,19 +412,19 @@ struct UnwrapTraits<ConstRefWrapper<T> > { |
template <typename T> |
struct UnwrapTraits<scoped_refptr<T> > { |
- typedef T* ForwardType; |
+ using ForwardType = T*; |
static ForwardType Unwrap(const scoped_refptr<T>& o) { return o.get(); } |
}; |
template <typename T> |
struct UnwrapTraits<WeakPtr<T> > { |
- typedef const WeakPtr<T>& ForwardType; |
+ using ForwardType = const WeakPtr<T>&; |
static ForwardType Unwrap(const WeakPtr<T>& o) { return o; } |
}; |
template <typename T> |
struct UnwrapTraits<OwnedWrapper<T> > { |
- typedef T* ForwardType; |
+ using ForwardType = T*; |
static ForwardType Unwrap(const OwnedWrapper<T>& o) { |
return o.get(); |
} |
@@ -432,7 +432,7 @@ struct UnwrapTraits<OwnedWrapper<T> > { |
template <typename T> |
struct UnwrapTraits<PassedWrapper<T> > { |
- typedef T ForwardType; |
+ using ForwardType = T; |
static T Unwrap(PassedWrapper<T>& o) { |
return o.Pass(); |
} |
@@ -515,12 +515,12 @@ struct DropTypeListItemImpl<n, TypeList<T, List...>> |
template <typename T, typename... List> |
struct DropTypeListItemImpl<0, TypeList<T, List...>> { |
- typedef TypeList<T, List...> Type; |
+ using Type = TypeList<T, List...>; |
}; |
template <> |
struct DropTypeListItemImpl<0, TypeList<>> { |
- typedef TypeList<> Type; |
+ using Type = TypeList<>; |
}; |
// A type-level function that drops |n| list item from given TypeList. |
@@ -558,7 +558,7 @@ struct ConcatTypeListsImpl; |
template <typename... Types1, typename... Types2> |
struct ConcatTypeListsImpl<TypeList<Types1...>, TypeList<Types2...>> { |
- typedef TypeList<Types1..., Types2...> Type; |
+ using Type = TypeList<Types1..., Types2...>; |
}; |
// A type-level function that concats two TypeLists. |
@@ -571,7 +571,9 @@ struct MakeFunctionTypeImpl; |
template <typename R, typename... Args> |
struct MakeFunctionTypeImpl<R, TypeList<Args...>> { |
- typedef R(Type)(Args...); |
+ // MSVC 2013 doesn't support Type Alias of function types. |
+ // Revisit this after we update it to newer version. |
+ typedef R Type(Args...); |
}; |
// A type-level function that constructs a function type that has |R| as its |