C++11y allows us to eliminate some boilerplate!
[invirt/third/libt4.git] / endian.h
index feb3bbd..7c78bbc 100644 (file)
--- a/endian.h
+++ b/endian.h
@@ -22,7 +22,7 @@ template <class T> inline T ntoh(T t) { return hton(t); }
 
 template <class... Args, size_t... Indices>
 inline tuple<typename std::remove_reference<Args>::type...>
-tuple_hton_imp(tuple<Args...> && t, tuple_indices<Indices...>) {
+tuple_hton_imp(tuple<Args...> && t, std::index_sequence<Indices...>) {
     return tuple<
         typename std::remove_reference<Args>::type...
     >(hton(std::get<Indices>(t))...);
@@ -31,7 +31,7 @@ tuple_hton_imp(tuple<Args...> && t, tuple_indices<Indices...>) {
 template <class... Args>
 inline tuple<typename std::remove_reference<Args>::type...>
 hton(tuple<Args...> && t) {
-    return tuple_hton_imp(std::forward<tuple<Args...>>(t), TUPLE_INDICES(Args));
+    return tuple_hton_imp(std::forward<tuple<Args...>>(t), std::index_sequence_for<Args...>{});
 }
 
 template <class T> inline typename