Explorar el Código

An rvalue reference cannot bind to an lvalue, so static_cast the
result of the __tuple_leaf::get() call to an rvalue reference when
returning from tuple's get().


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124190 91177308-0d34-0410-b5e6-96231b3b80d8

Douglas Gregor hace 14 años
padre
commit
6c669943b3
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      include/tuple

+ 2 - 1
include/tuple

@@ -589,7 +589,8 @@ typename tuple_element<_Ip, tuple<_Tp...> >::type&&
 get(tuple<_Tp...>&& __t)
 {
     typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;
-    return static_cast<__tuple_leaf<_Ip, type>&&>(__t.base_).get();
+    return static_cast<typename tuple_element<_Ip, tuple<_Tp...> >::type&&>(
+             static_cast<__tuple_leaf<_Ip, type>&&>(__t.base_).get());
 }
 
 // tie