llvm-project/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func
Eric Fiselier 54519a6be9 [libcxx] Fix PR 22468 - std::function<void()> does not accept non-void-returning functions
Summary:
The bug can be found here: http://llvm.org/bugs/show_bug.cgi?id=22468

`__invoke_void_return_wrapper` is needed to properly handle calling a function that returns a value but where the std::function return type is void. Without this '-Wsystem-headers' will cause `function::operator()(...)` to not compile. 

Reviewers: eugenis, K-ballo, mclow.lists

Reviewed By: mclow.lists

Subscribers: cfe-commits

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

llvm-svn: 228705
2015-02-10 16:48:45 +00:00
..
func.wrap.func.alg
func.wrap.func.cap
func.wrap.func.con [libcxx] Fix PR 22468 - std::function<void()> does not accept non-void-returning functions 2015-02-10 16:48:45 +00:00
func.wrap.func.inv [libcxx] Fix PR 22468 - std::function<void()> does not accept non-void-returning functions 2015-02-10 16:48:45 +00:00
func.wrap.func.mod
func.wrap.func.nullptr
func.wrap.func.targ
types.pass.cpp In early C++11 standard drafts, std::function derived from std::unary_function or std::binary_function if there was only one (or two) parameters. Before C++11 shipped, this restiction was lifted, but libc++ still does this (which is fine). However, the tests still check for this outdated requiremnt. Change then to check for the nested typedefs instead (which are still required by the standard). No change to the library. 2015-01-08 06:36:41 +00:00