Cross-port exception-safety and move fixes of std::any to std::experimental::any.
authorVille Voutilainen <ville.voutilainen@gmail.com>
Mon, 24 Oct 2016 13:22:11 +0000 (16:22 +0300)
committerVille Voutilainen <ville@gcc.gnu.org>
Mon, 24 Oct 2016 13:22:11 +0000 (16:22 +0300)
commita3f6007cbc84242c088097e46602a65f9654a349
treecdd80a119a6aa9e73779d62f044b7bced051e78d
parent292af537961e1f4ac5e1e7f0e727fb79b5196998
Cross-port exception-safety and move fixes of std::any to std::experimental::any.

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.

From-SVN: r241479
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