cxx/include
Eric Fiselier bfb46e486d Cleanup C++03 __invoke for Bullets 3 and 4.
The key changes in this patch are:

1. Remove the zero-argument overload in mem_fn. A member function must always
   be invoked with at least one argument, the class instance. The zero-argument
   operator()() in mem_fn would cause mem_fn to fail to compile when because
   the call to '__invoke(pm)' is not well formed.

2. Prevent evaluation of '__apply_cv<Tp, Ret>' when 'Ret' is a function type.
   'Ret' is a function type whenever 'Ret Tp::*' is a pointer to member function.
   Attempting to add cv and ref qualifiers to a function type can cause a hard
   compile error.

3. Remove the dummy overload __invoke(Rp Tp::*). It was present to help work
   around #1. It will be replaced with a different '__invoke' overload that
   represents a bad call to invoke.

After applying this patch the test func.wrap.func.inv/invoke.pass.cpp now
passes.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@243370 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-28 02:15:53 +00:00
..
2015-06-13 07:08:02 +00:00
2015-07-17 16:36:44 +00:00
2015-02-05 02:34:59 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2013-10-05 21:19:49 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2014-05-16 01:45:02 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2011-10-17 20:05:10 +00:00
2015-07-19 00:31:54 +00:00
2014-11-26 17:51:58 +00:00
new
2015-05-19 02:03:22 +00:00
2011-10-17 20:05:10 +00:00
2015-06-13 07:08:02 +00:00