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

            Bug ID: 107186
           Summary: GCC rejects  use of static constexpr member function
                    in noexcept complete-class context
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jlame646 at gmail dot com
  Target Milestone: ---

The following valid program is rejected by gcc as well as other compilers:

```
struct A {
   constexpr static bool func() 
   { 
       return true; 
   }
   //--------------vvvvvv------->works as expected   #1
   void f(bool V1 = func())
   { 
      bool V2 = func(); //works as expected          #2
   }
   //-----------------vvvvvv---->DOESN'T WORK?       #3
   void g()  noexcept(func()) 
   {
      ;
   }

};
```
>From [class.mem.general](https://eel.is/c++draft/class.mem.general#7.4):

> A complete-class context of a class is a
>
> * noexcept specifier

As we can see the noexcept speficier is included in the complete-class context
so the `#3` should work.

Reply via email to