teak-llvm/libcxx/test/std/utilities/function.objects
Eric Fiselier 840fa745ca Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE.
The primary purpose of this patch is to add the 'is_callable' traits.
Since 'is_nothrow_callable' required making 'INVOKE' conditionally noexcept
I also took this oppertunity to implement a constexpr version of INVOKE.
This fixes 'std::experimental::apply' which required constexpr 'INVOKE support'.

This patch will be followed up with some cleanup. Primarly removing most
of "__member_function_traits" since it's no longer used by INVOKE (in C++11 at least).

llvm-svn: 266836
2016-04-20 00:14:32 +00:00
..
arithmetic.operations In C++03, a bunch of the arithmetic/logical/comparison functors (such as negate/bit_not.pass/logical_not) were defined as deriving from unary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion. 2015-01-07 21:51:30 +00:00
bind Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE. 2016-04-20 00:14:32 +00:00
bitwise.operations Get tests running with warnings. Fix warnings in headers and tests 2015-02-05 20:28:37 +00:00
comparisons Missed one comparison test in r225375 2015-01-07 20:40:28 +00:00
func.def
func.invoke Implement LWG issue 2219 - support reference_wrapper in INVOKE 2016-04-18 06:17:30 +00:00
func.memfn Fix LWG#2489: mem_fn() should be noexcept 2015-10-25 20:12:16 +00:00
func.require Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE. 2016-04-20 00:14:32 +00:00
func.wrap Implement LWG#2385; remove the allocator-aware std::function::assign call. It was useless, and didn't actually *do anything* with the allocator. Now it's gone. On the off chance that someone is mistakenly calling it, it's only gone in C++1z 2016-01-25 17:29:55 +00:00
logical.operations In C++03, a bunch of the arithmetic/logical/comparison functors (such as negate/bit_not.pass/logical_not) were defined as deriving from unary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion. 2015-01-07 21:51:30 +00:00
negators In C++03, a bunch of the arithmetic/logical/comparison functors (such as negate/bit_not.pass/logical_not) were defined as deriving from unary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion. 2015-01-07 21:51:30 +00:00
refwrap Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits 2016-01-20 04:59:57 +00:00
unord.hash Add hash specializations for __int128_t. Fixes LWG issue 2119 2016-04-18 02:54:00 +00:00
version.pass.cpp