Index: base/tuple.h |
diff --git a/base/tuple.h b/base/tuple.h |
index df69bf01169cf3784edb5605de2ba021795e3c7c..0f7ec0735e94c027f97faac0c56e26274a836c72 100644 |
--- a/base/tuple.h |
+++ b/base/tuple.h |
@@ -110,43 +110,6 @@ struct MakeIndexSequenceImpl<N, Ns...> |
template <size_t N> |
using MakeIndexSequence = typename MakeIndexSequenceImpl<N>::Type; |
-// Tuple ----------------------------------------------------------------------- |
-// |
-// This set of classes is useful for bundling 0 or more heterogeneous data types |
-// into a single variable. The advantage of this is that it greatly simplifies |
-// function objects that need to take an arbitrary number of parameters; see |
-// RunnableMethod and IPC::MessageWithTuple. |
-// |
-// Tuple<> is supplied to act as a 'void' type. It can be used, for example, |
-// when dispatching to a function that accepts no arguments (see the |
-// Dispatchers below). |
-// Tuple<A> is rarely useful. One such use is when A is non-const ref that you |
-// want filled by the dispatchee, and the tuple is merely a container for that |
-// output (a "tier"). See MakeRefTuple and its usages. |
- |
-template <typename... Ts> |
-using Tuple = std::tuple<Ts...>; |
- |
-using std::get; |
- |
-// Tuple creators ------------------------------------------------------------- |
-// |
-// Helper functions for constructing tuples while inferring the template |
-// argument types. |
- |
-template <typename... Ts> |
-inline Tuple<Ts...> MakeTuple(const Ts&... arg) { |
- return Tuple<Ts...>(arg...); |
-} |
- |
-// The following set of helpers make what Boost refers to as "Tiers" - a tuple |
-// of references. |
- |
-template <typename... Ts> |
-inline Tuple<Ts&...> MakeRefTuple(Ts&... arg) { |
- return Tuple<Ts&...>(arg...); |
-} |
- |
// Dispatchers ---------------------------------------------------------------- |
// |
// Helper functions that call the given method on an object, with the unpacked |
@@ -161,15 +124,15 @@ inline Tuple<Ts&...> MakeRefTuple(Ts&... arg) { |
template <typename ObjT, typename Method, typename... Ts, size_t... Ns> |
inline void DispatchToMethodImpl(const ObjT& obj, |
Method method, |
- const Tuple<Ts...>& arg, |
+ const std::tuple<Ts...>& arg, |
IndexSequence<Ns...>) { |
- (obj->*method)(internal::Unwrap(get<Ns>(arg))...); |
+ (obj->*method)(internal::Unwrap(std::get<Ns>(arg))...); |
} |
template <typename ObjT, typename Method, typename... Ts> |
inline void DispatchToMethod(const ObjT& obj, |
Method method, |
- const Tuple<Ts...>& arg) { |
+ const std::tuple<Ts...>& arg) { |
DispatchToMethodImpl(obj, method, arg, MakeIndexSequence<sizeof...(Ts)>()); |
} |
@@ -177,13 +140,14 @@ inline void DispatchToMethod(const ObjT& obj, |
template <typename Function, typename... Ts, size_t... Ns> |
inline void DispatchToFunctionImpl(Function function, |
- const Tuple<Ts...>& arg, |
+ const std::tuple<Ts...>& arg, |
IndexSequence<Ns...>) { |
- (*function)(internal::Unwrap(get<Ns>(arg))...); |
+ (*function)(internal::Unwrap(std::get<Ns>(arg))...); |
} |
template <typename Function, typename... Ts> |
-inline void DispatchToFunction(Function function, const Tuple<Ts...>& arg) { |
+inline void DispatchToFunction(Function function, |
+ const std::tuple<Ts...>& arg) { |
DispatchToFunctionImpl(function, arg, MakeIndexSequence<sizeof...(Ts)>()); |
} |
@@ -197,18 +161,19 @@ template <typename ObjT, |
size_t... OutNs> |
inline void DispatchToMethodImpl(const ObjT& obj, |
Method method, |
- const Tuple<InTs...>& in, |
- Tuple<OutTs...>* out, |
+ const std::tuple<InTs...>& in, |
+ std::tuple<OutTs...>* out, |
IndexSequence<InNs...>, |
IndexSequence<OutNs...>) { |
- (obj->*method)(internal::Unwrap(get<InNs>(in))..., &get<OutNs>(*out)...); |
+ (obj->*method)(internal::Unwrap(std::get<InNs>(in))..., |
+ &std::get<OutNs>(*out)...); |
} |
template <typename ObjT, typename Method, typename... InTs, typename... OutTs> |
inline void DispatchToMethod(const ObjT& obj, |
Method method, |
- const Tuple<InTs...>& in, |
- Tuple<OutTs...>* out) { |
+ const std::tuple<InTs...>& in, |
+ std::tuple<OutTs...>* out) { |
DispatchToMethodImpl(obj, method, in, out, |
MakeIndexSequence<sizeof...(InTs)>(), |
MakeIndexSequence<sizeof...(OutTs)>()); |