Cross-port exception-safety and move fixes of std::any to
commitedf212c67d6413653d7a9034db94949ffa46e8a8
authorville <ville@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Oct 2016 13:22:11 +0000 (24 13:22 +0000)
committerville <ville@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Oct 2016 13:22:11 +0000 (24 13:22 +0000)
treecdd80a119a6aa9e73779d62f044b7bced051e78d
parent11cb770069e783ea6bfee867d4f03ebeaef8a1ec
Cross-port exception-safety and move fixes of std::any to
std::experimental::any.
* include/experimental/any (operator=(const any&)):
Make strongly exception-safe.
(operator=(any&&)): clear() unconditionally in the case where
rhs has a value.
(_Manager_internal<_Tp>::_S_manage): Move in _Op_xfer, don't copy.
* testsuite/experimental/any/assign/2.cc: Adjust.
* testsuite/experimental/any/assign/exception.cc: New.
* testsuite/experimental/any/cons/2.cc: Adjust.
* testsuite/experimental/any/misc/any_cast_neg.cc: Ajust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241479 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/any
libstdc++-v3/testsuite/experimental/any/assign/2.cc
libstdc++-v3/testsuite/experimental/any/assign/exception.cc [new file with mode: 0644]
libstdc++-v3/testsuite/experimental/any/cons/2.cc
libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc