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

            Bug ID: 115807
           Summary: C++23 P0943R6 <stdatomic.h> does't qualify std::atomic
                    in #define _Atomic properly
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mital at mitalashok dot co.uk
  Target Milestone: ---

https://wg21.link/P0943R6 / https://eel.is/c++draft/stdatomic.h.syn says
`#define _Atomic` should look more like this:

```
template<typename _Tp>
using __std_atomic = std::atomic<_Tp>;
#define _Atomic(_Tp) __std_atomic<_Tp>
```

Though `#define _Atomic(_Tp) ::std::atomic<_Tp>` should also work.

The problem with the current `#define _Atomic(_Tp) std::atomic<_Tp>` is that
this doesn't work:

```
#include <stdatomic.h>
namespace my::std {
    _Atomic(int) x;
}
```

Reply via email to