Accidentally disallowed explicit tuple conversions when all elements of the tuple can be explicitly converted.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@179467 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f67100219
commit
993248935c
@ -477,7 +477,7 @@ struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
|
|||||||
template <class _Tuple,
|
template <class _Tuple,
|
||||||
class = typename enable_if
|
class = typename enable_if
|
||||||
<
|
<
|
||||||
__tuple_convertible<_Tuple, tuple<_Tp...> >::value
|
__tuple_constructible<_Tuple, tuple<_Tp...> >::value
|
||||||
>::type
|
>::type
|
||||||
>
|
>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -67,4 +67,13 @@ int main()
|
|||||||
assert(std::get<1>(t1) == int('a'));
|
assert(std::get<1>(t1) == int('a'));
|
||||||
assert(std::get<2>(t1).id_ == 2);
|
assert(std::get<2>(t1).id_ == 2);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
typedef std::tuple<double, char, int> T0;
|
||||||
|
typedef std::tuple<int, int, B> T1;
|
||||||
|
T0 t0(2.5, 'a', 3);
|
||||||
|
T1 t1(t0);
|
||||||
|
assert(std::get<0>(t1) == 2);
|
||||||
|
assert(std::get<1>(t1) == int('a'));
|
||||||
|
assert(std::get<2>(t1).id_ == 3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user