Eric Fiselier
034555f1a2
Implement P0504R0: Revisiting in-place tag types for any/optional/variant
...
llvm-svn: 287250
2016-11-17 19:24:04 +00:00
Eric Fiselier
c5777f4d58
Make any_cast<void()>(nullptr) compile
...
llvm-svn: 284333
2016-10-16 11:56:38 +00:00
Eric Fiselier
50253ed1c6
Update issue status for LWG 2744
...
llvm-svn: 284322
2016-10-16 02:51:50 +00:00
Eric Fiselier
9c737fddba
Update issue status for LWG 2768 and 2769
...
llvm-svn: 284321
2016-10-16 01:43:43 +00:00
Eric Fiselier
b18fd9654f
Fix various issues in std::any and the related tests.
...
* Fix self-swap. Patch from Casey Carter.
* Remove workarounds and tests for types with deleted move constructors. This
was originally added as part of a LWG proposed resolution that has since
changed.
* Re-apply most recent PR for LWG 2769.
* Re-apply most recent PR for LWG 2754. Specifically fix the SFINAE checks to
use the decayed type.
* Fix tests to allow moved-from std::any's to have a non-empty state. This is
the behavior of MSVC's std::any.
* Various whitespace and test fixes.
llvm-svn: 283606
2016-10-07 21:27:45 +00:00
Marshall Clow
0fc8cec796
Followon to r279744. Find the other exception types and make __throw_XXX routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore.
...
llvm-svn: 279763
2016-08-25 17:47:09 +00:00
Marshall Clow
d437fa5c8c
Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855 .
...
llvm-svn: 279744
2016-08-25 15:09:01 +00:00
Eric Fiselier
324506b9f3
[libcxx] Add std::any
...
Summary:
This patch adds std::any by moving/adapting <experimental/any>.
This patch also implements the std::any parts of p0032r3 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf )
and LWG 2509 (http://cplusplus.github.io/LWG/lwg-defects.html#2509 ).
I plan to push it in a day or two if there are no comments.
Reviewers: mclow.lists, EricWF
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D22733
llvm-svn: 278310
2016-08-11 03:13:11 +00:00