[Bug c++/96090] New: Inconsistent querying of differring exception specifications of explicitly defaulted functions

johelegp at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jul 7 00:22:37 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96090

            Bug ID: 96090
           Summary: Inconsistent querying of differring exception
                    specifications of explicitly defaulted functions
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: johelegp at gmail dot com
  Target Milestone: ---

See https://godbolt.org/z/SiGMyX.
```C++
#include <type_traits>
using namespace std;
struct yesthrow_t
{
    yesthrow_t()                              noexcept(false) = default;
    yesthrow_t(const yesthrow_t&)             noexcept(false) = default;
    yesthrow_t(      yesthrow_t&&)            noexcept(false) = default;
    yesthrow_t& operator=(const yesthrow_t&)  noexcept(false) = default;
    yesthrow_t& operator=(      yesthrow_t&&) noexcept(false) = default;
};
static_assert(!is_nothrow_default_constructible_v<yesthrow_t>);
static_assert(!is_nothrow_copy_constructible_v<   yesthrow_t>);
static_assert(!is_nothrow_copy_assignable_v<      yesthrow_t>);
static_assert(!is_nothrow_move_constructible_v<   yesthrow_t>);
static_assert(!is_nothrow_move_assignable_v<      yesthrow_t>);
```
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00311.html calls out a single
case, but not this inconsistency.


More information about the Gcc-bugs mailing list