teak-llvm/libcxx/test/std/utilities/utility/forward
Eric Fiselier 000f25a37e Make move and forward work in C++03.
These functions are key to allowing the use of rvalues and variadics
in C++03 mode. Everything works the same as in C++11, except for one
tangentially related case:

struct T {
  T(T &&) = default;
};

In C++11, T has a deleted copy constructor. But in C++03 Clang gives
it both a move and a copy constructor. This seems reasonable enough
given the extensions it's using.

The other changes in this patch were the minimal set required
to keep the tests passing after the move/forward change. Most notably
the removal of the `__rv<unique_ptr>` hack that was present
in an attempt to make unique_ptr move only without language support.

llvm-svn: 364063
2019-06-21 15:20:55 +00:00
..
forward.fail.cpp Make move and forward work in C++03. 2019-06-21 15:20:55 +00:00
forward.pass.cpp Make move and forward work in C++03. 2019-06-21 15:20:55 +00:00
move_if_noexcept.pass.cpp Make move and forward work in C++03. 2019-06-21 15:20:55 +00:00
move.fail.cpp Make move and forward work in C++03. 2019-06-21 15:20:55 +00:00
move.pass.cpp Make move and forward work in C++03. 2019-06-21 15:20:55 +00:00