Open lewissbaker opened 2 weeks ago
A volatile
version of memcpy
seems necessary for correct writing...
Thanks @pinskia - this is definitely blocked on LWG-3508 that @CaseyCarter filed back in 2020. That needs to be resolved before we'll know what to do here.
The paper https://isocpp.org/files/papers/P3323R0.html proposes some improvements to std::atomic_ref
to address some of the issues around use with cv-qualified types.
Describe the bug
The following code-snippet fails to compile under latest MSVC.
See https://godbolt.org/z/f5jP7zs5G
Expected behavior
I expected this code-snippet to compile successfully.
We should be able to use
std::atomic_ref<volatile int>
to read/write atomically to storage pointed to by avolatile int*
. e.g. for storage mapped in via shared-memory.STL version
Whatever is running in the current compiler-explorer under 'x64 msvc v19.latest'. Diagnostic paths include '14.39.33321-Pre'
Additional context
Also potentially related - see Wg21 mailing list thread on potential specification issue relating to
std::atomic_ref<volatile T>
. https://lists.isocpp.org/lib/2024/06/28451.phpOther standard libraries also seem to have similar issues: