]> git.ipfire.org Git - thirdparty/gcc.git/commit - libstdc++-v3/ChangeLog
Remove some more code duplication in std::optional
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Jan 2019 10:40:49 +0000 (10:40 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Jan 2019 10:40:49 +0000 (10:40 +0000)
commit41cda271e878afbd13a05d8b212b5f1f36359811
tree30f05061b35e63e38f9190b39e3f40c022ee9ee3
parent82d5082e12286ae102bd7960ce48f3604ec91ec5
Remove some more code duplication in std::optional

Hoist the duplicated code from the _Optional_payload partial
specializations into the _Optional_payload_base base class.

* include/std/optional (_Optional_payload_base::_M_copy_assign): New
member function to perform non-trivial assignment.
(_Optional_payload_base::_M_move_assign): Likewise.
(_Optional_payload<T, true, false, true>::operator=)
(_Optional_payload<T, true, true, false>::operator=)
(_Optional_payload<T, true, false, false>::operator=): Call
_M_copy_assign and/or _M_move_assign to do non-trivial assignments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267761 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/std/optional