diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-10-14 07:19:52 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-10-14 07:19:52 +0000 |
commit | 498ee00a3af1ba1490b6bd8fe89dfa4fc67f1601 (patch) | |
tree | 2c2368eb75a3be3a72aa68c586c8e46e87fa6697 /libcxx/test/std/utilities/function.objects | |
parent | ffb602125aa1b400a27f39870ea56ca00ff4fa94 (diff) | |
download | bcm5719-llvm-498ee00a3af1ba1490b6bd8fe89dfa4fc67f1601.tar.gz bcm5719-llvm-498ee00a3af1ba1490b6bd8fe89dfa4fc67f1601.zip |
Add void_t and invoke feature test macros
llvm-svn: 284209
Diffstat (limited to 'libcxx/test/std/utilities/function.objects')
-rw-r--r-- | libcxx/test/std/utilities/function.objects/func.invoke/invoke_feature_test_macro.pass.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/function.objects/func.invoke/invoke_feature_test_macro.pass.cpp b/libcxx/test/std/utilities/function.objects/func.invoke/invoke_feature_test_macro.pass.cpp new file mode 100644 index 00000000000..aaac98474fc --- /dev/null +++ b/libcxx/test/std/utilities/function.objects/func.invoke/invoke_feature_test_macro.pass.cpp @@ -0,0 +1,39 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <functional> + +// template <class F, class ...Args> +// result_of_t<F&&(Args&&...)> invoke(F&&, Args&&...); + +#include <functional> +#include <cassert> + +#include "test_macros.h" + +#if TEST_STD_VER <= 14 +# ifdef __cpp_lib_invoke +# error Feature test macro should be defined +# endif +#else +# ifndef __cpp_lib_invoke +# error Feature test macro not defined +# endif +# if __cpp_lib_invoke != 201411 +# error __cpp_lib_invoke has the wrong value +# endif +#endif + +int foo(int) { return 42; } + +int main() { +#if defined(__cpp_lib_invoke) + assert(std::invoke(foo, 101) == 42); +#endif +}
\ No newline at end of file |