[PATCH] D19247: Deprecate C++03 <functional> Extensions: std::function, std::mem_fn and more

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 18 17:04:17 PDT 2016


EricWF created this revision.
EricWF added a reviewer: mclow.lists.
EricWF added a subscriber: cfe-commits.

This patch deprecates almost all C++03 extensions offered by <functional>. These extensions started as fallback implementations for compilers without variadic template support.
Since compiler support is no longer an issue I would like to remove these features. The end goal is to remove both `<__functional_03>` and `<__functional_base_03>` entirely. 

The features this patch deprecates are:

* `std::function`
* `std::mem_fn`
* `std::reference_wrapper::operator()`

Although `reference_wrapper` is C++11 only I chose to only deprecate the variadic call operator. The rest of the class will remain as an extension.

Killing these features allows us to kill the C++03 implementation of INVOKE and it's related traits, which have a poor QoI with a large maintenance burden. 


http://reviews.llvm.org/D19247

Files:
  include/__config
  include/__functional_03
  include/__functional_base
  include/functional

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19247.54139.patch
Type: text/x-patch
Size: 9177 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160419/e1464c9c/attachment.bin>


More information about the cfe-commits mailing list