Douglas Gregor
f9e1c7e367
Eliminate the C++0x-only is_convertible testing function that accepts
...
a cv-qualifier rvalue reference to the type, e.g.,
template <class _Tp> char __test(const volatile typename remove_reference<_Tp>::type&&);
The use of this function signature rather than the more
straightforward one used in C++98/03 mode, e.g.,
template <class _Tp> char __test(_Tp);
is broken in two ways:
1) An rvalue reference cannot bind to lvalues, so is_convertible<X&,
X&>::value would be false. This breaks two of the unique_ptr tests
on Clang and GCC >= 4.5. Prior GCC's seem to have allowed rvalue
references to bind to lvalues, allowing this bug to slip in.
2) By adding cv-qualifiers to the type we're converting to, we get
some incorrect "true" results for, e.g., is_convertible<const X&, X&>::value.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-25 01:15:41 +00:00
..
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-17 14:46:43 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-17 14:46:43 +00:00
2010-11-28 19:41:07 +00:00
2011-01-04 19:53:31 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2011-01-24 16:07:25 +00:00
2010-11-16 22:09:02 +00:00
2010-11-19 22:17:28 +00:00
2010-11-17 19:52:17 +00:00
2010-12-08 17:20:28 +00:00
2010-11-17 21:53:14 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-20 19:16:30 +00:00
2010-05-11 21:36:01 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-18 17:34:48 +00:00
2010-11-16 22:09:02 +00:00
2010-11-20 19:16:30 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-10-14 17:11:39 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-02 16:45:21 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-02 16:45:21 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-17 14:46:43 +00:00
2011-01-08 20:00:48 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-19 22:17:28 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-17 14:46:43 +00:00
2011-01-04 19:21:05 +00:00
2011-01-11 20:02:45 +00:00
2011-01-12 22:56:59 +00:00
2010-12-02 16:45:21 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-18 17:34:48 +00:00
2010-11-28 19:41:07 +00:00
2010-12-08 21:07:55 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2011-01-04 19:53:31 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-12-17 14:46:43 +00:00
2011-01-24 16:07:25 +00:00
2011-01-25 01:15:41 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2010-11-16 22:09:02 +00:00
2011-01-13 20:05:05 +00:00
2010-11-16 22:09:02 +00:00
2011-01-04 19:53:31 +00:00