Merge C++03 and C++11 implementations of mem_fn and __mem_fn.
authorEric Fiselier <eric@efcs.ca>
Wed, 22 Jul 2015 22:43:27 +0000 (22:43 +0000)
committerEric Fiselier <eric@efcs.ca>
Wed, 22 Jul 2015 22:43:27 +0000 (22:43 +0000)
commit00f512ebdf3e40969b135c4241421d218d37a71f
treeff8d6593a80fe17460fd3cabc0505cd3e678b5f9
parentd2a8dc88ff4b309b67232a79bef3dea013e35cf2
Merge C++03 and C++11 implementations of mem_fn and __mem_fn.

The implementation of mem_fn doesn't actually require any  C++11 support.
For some reason there were 17 overloads for mem_fn in C++03 when only one
is needed. This patch removes the extra overloads and uses the same implementation
of mem_fn in C++03 and C++11.

__mem_fn does require variadics to implement the call operator. Instead of
having two entirely different implementations of the __mem_fn struct, this patch
uses the same __mem_fn struct but provides different call operators when
variadics are not available.

The only thing left in <__functional_03> is the C++03 implementation of
std::function.

llvm-svn: 242959
libcxx/include/__functional_03
libcxx/include/functional