Index: webrtc/base/template_util.h |
diff --git a/webrtc/base/template_util.h b/webrtc/base/template_util.h |
index 31464cf35db5d4047a7b8d95cb50246b8a23c0df..f3565a4c91ed792ac977eb8cffcaf67b04d13653 100644 |
--- a/webrtc/base/template_util.h |
+++ b/webrtc/base/template_util.h |
@@ -48,17 +48,17 @@ template <class T> struct is_non_const_reference<const T&> : false_type {}; |
template <class T> struct is_void : false_type {}; |
template <> struct is_void<void> : true_type {}; |
-template <class T> |
-struct remove_reference { |
- typedef T type; |
-}; |
-template <class T> |
-struct remove_reference<T&> { |
- typedef T type; |
-}; |
-template <class T> |
-struct remove_reference<T&&> { |
- typedef T type; |
+// Helper useful for converting a tuple to variadic template function |
+// arguments. |
+// |
+// sequence_generator<3>::type will be sequence<0, 1, 2>. |
+template <int...> |
+struct sequence {}; |
+template <int N, int... S> |
+struct sequence_generator : sequence_generator<N - 1, N - 1, S...> {}; |
+template <int... S> |
+struct sequence_generator<0, S...> { |
+ typedef sequence<S...> type; |
}; |
namespace internal { |