libstdc++: Add noexcept to some std::promise shared state internals
Making the state ready for a std::promise<void> only needs to move a unique_ptr, which cannot throw. Make its call operator noexcept. Similarly, making the state ready by storing an exception_ptr also can't throw, so make that call operator noexcept too. libstdc++-v3/ChangeLog: * include/std/future (_State_baseV2::_Setter<R, void>): Add noexcept to call operator. (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
This commit is contained in:
parent
9651d6005f
commit
5d156a9185
1 changed files with 2 additions and 2 deletions
|
@ -532,7 +532,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
{
|
||||
static_assert(is_void<_Res>::value, "Only used for promise<void>");
|
||||
|
||||
typename promise<_Res>::_Ptr_type operator()() const
|
||||
typename promise<_Res>::_Ptr_type operator()() const noexcept
|
||||
{ return std::move(_M_promise->_M_storage); }
|
||||
|
||||
promise<_Res>* _M_promise;
|
||||
|
@ -545,7 +545,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
struct _Setter<_Res, __exception_ptr_tag>
|
||||
{
|
||||
// Used by std::promise to store an exception as the result.
|
||||
typename promise<_Res>::_Ptr_type operator()() const
|
||||
typename promise<_Res>::_Ptr_type operator()() const noexcept
|
||||
{
|
||||
_M_promise->_M_storage->_M_error = *_M_ex;
|
||||
return std::move(_M_promise->_M_storage);
|
||||
|
|
Loading…
Add table
Reference in a new issue