llvm-project/libcxx
Eric Fiselier 555330719a Implement LWG 2488 - Make the placeholders constexpr.
This patch makes the bind placeholders in std::placeholders both (1) const and
(2) constexpr (See below).

This is technically a breaking change for any code using the placeholders
outside of std::bind and depending on them being non-const. However I don't
think this will break any real world code.

(1) Previously the placeholders were non-const extern globals in all
dialects. This patch changes these extern globals to be const in all dialects.
Since the cv-qualifiers don't participate in name mangling for globals this
is an ABI compatible change.

(2) Make the placeholders constexpr in C++11 and beyond. Although LWG 2488 only
applies to C++17 I don't see any reason not to backport this change.

llvm-svn: 273824
2016-06-26 21:01:34 +00:00
..
cmake [CMake] Cleanup uses of USES_TERMINAL 2016-06-08 22:20:28 +00:00
docs Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
include Implement LWG 2488 - Make the placeholders constexpr. 2016-06-26 21:01:34 +00:00
lib Add Filesystem TS -- Complete 2016-06-17 19:46:40 +00:00
src Implement LWG 2488 - Make the placeholders constexpr. 2016-06-26 21:01:34 +00:00
test Implement LWG 2488 - Make the placeholders constexpr. 2016-06-26 21:01:34 +00:00
utils Add more missing license headers 2016-01-19 21:58:49 +00:00
www Implement LWG 2488 - Make the placeholders constexpr. 2016-06-26 21:01:34 +00:00
.arcconfig Update Arcanist config to point to reviews.llvm.org 2014-06-10 18:29:36 +00:00
.gitignore [libc++] Refactor test components into modules. 2015-01-09 18:03:29 +00:00
CMakeLists.txt Add -Wno-covered-switch-default while compiling libc++ 2016-06-18 18:55:18 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT Test commit to see if libcxx.llvm.org/docs builds 2015-09-04 22:57:00 +00:00