[PATCH] [libcxx] Add <experimental/tuple>
Eric Fiselier
eric at efcs.ca
Mon Feb 2 13:03:17 PST 2015
Hi mclow.lists, jroelofs, danalbert, K-ballo,
This patch adds `<experimental/tuple>`. `<experimental/tuple>` contains `tuple_size_v` and `apply(F&&, Tuple&&)`.
In order to implement `apply` the existing functionality of `__invoke` in `<__functional_base>` is used. In order for `apply` to be constexpr all of the existing `__invoke` overloads were marked as constexpr.
Because `__invoke` is used `apply` supports all function types specified in the `INVOKE` macro specification. This means `apply` has extended support for pointers to member functions and pointers to member objects. This extension is tested in `libcxx/test/libcxx/experimental/utilities/tuple/tuple.apply/extended_types.pas.cpp`.
http://reviews.llvm.org/D7354
Files:
include/__functional_base
include/experimental/tuple
include/type_traits
test/libcxx/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp
test/libcxx/experimental/utilities/tuple/tuple.apply/extended_types.pass.cpp
test/libcxx/experimental/utilities/tuple/version.pass.cpp
test/std/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/arg_type.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/constexpr_types.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/large_arity.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/ref_qualifiers.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/return_type.pass.cpp
test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
test/std/experimental/utilities/tuple/tuple_size_v.fail.cpp
test/std/experimental/utilities/tuple/tuple_size_v.pass.cpp
test/std/experimental/utilities/tuple/tuple_size_v_2.fail.cpp
test/std/experimental/utilities/tuple/tuple_size_v_3.fail.cpp
www/ts1z_status.html
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7354.19182.patch
Type: text/x-patch
Size: 49894 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150202/e5c0bd6a/attachment.bin>
More information about the cfe-commits
mailing list