History log of /external/libcxx/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ee226c05af9e0187098f43fb71465a581487af9b 09-Jun-2016 Dan Austin <danielaustin@google.com> Revert "Revert "Update aosp/master libcxx rebase to r263688""

This reverts commit 1d4a1edbc7e4461b59239e1b8297e9dd395a6322.

Change-Id: I2909937fe582f2c5552bc86e7f4d2d5cff0de0aa
/external/libcxx/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
1d4a1edbc7e4461b59239e1b8297e9dd395a6322 26-May-2016 Dan Albert <danalbert@google.com> Revert "Update aosp/master libcxx rebase to r263688"

The world is burning.

This reverts commit c004fd909c006eec55077c52ee119e1fa338c9e9, reversing
changes made to 1418e4163da4bb0b9e3fe496e51c23a0dce399d9.
/external/libcxx/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
237206bfdac14d61fc0fa7c77f5a00a14c6be7ae 01-Oct-2015 Eric Fiselier <eric@efcs.ca> Suppress array initialization warnings in std::experimental::apply tests

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@248987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
13858ee05627bba4d0e7609ff84ad71d8d7e3ca0 17-Mar-2015 Eric Fiselier <eric@efcs.ca> [libcxx] Add <experimental/tuple> header for LFTS.

Summary:
This patch adds the `<experimental/tuple>` header (almost) as specified in the latest draft of the library fundamentals TS.

The main changes in this patch are:

1. Added variable template `tuple_size_v`
2. Added function `apply(Func &&, Tuple &&)`.
3. Changed `__invoke` to be `_LIBCPP_CONSTEXPR_AFTER_CXX11`.

The `apply(...)` implementation uses `__invoke` to invoke the given function. `__invoke` already provides the required functionality. Using `__invoke` also allows `apply` to be used on pointers to member function/objects as an extension. In order to facilitate this `__invoke` has to be marked `constexpr`.



Test Plan:
Each new feature was tested.

The test cases for `tuple_size_v` are as follows:
1. tuple_size_v.pass.cpp
- Check `tuple_size_v` on cv qualified tuples, pairs and arrays.
2. tuple_size_v.fail.cpp
- Test on reference type.
3. tuple_size_v_2.fail.cpp
- Test on non-tuple
4. tuple_size_v_3.fail.cpp
- Test on pointer type.

The test cases for tuple.apply are as follows:

1. arg_type.pass.cpp
- Ensure that ref/pointer/cv qualified types are properly passed.
2. constexpr_types.pass.cpp
- Ensure constexpr evaluation of apply is possible for `tuple` and `pair`.
3. extended_types.pass.cpp
- Test apply on function types permitted by extension.
4. large_arity.pass.cpp
- Test that apply can evaluated on tuples and arrays with large sizes.
5. ref_qualifiers.pass.cpp
- Test that apply respects ref qualified functions.
6. return_type.pass.cpp
- Test that apply returns the proper type.
7. types.pass.cpp
- Test apply on function types as required by LFTS.

Reviewers: mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4512

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@232515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp