This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
std::ignore
is unimplementable for volatile
bit-fieldsSection: 22.4.5 [tuple.creation] Status: New Submitter: Jiang An Opened: 2023-08-19 Last modified: 2023-11-03
Priority: 4
View other active issues in [tuple.creation].
View all other issues in [tuple.creation].
View all issues with New status.
Discussion:
22.4.5 [tuple.creation]/5 currently says:
[…] When an argument in
t
isignore
, assigning any value to the corresponding tuple element has no effect.
which is unimplementable for volatile
-qualified bit-field glvalues.
operator=
function, a distinct object needs to be created and thus the read from
the volatile
glvalue, which is a side effect (6.9.1 [intro.execution]/7), is unavoidable.
P2968R0 addresses the impossibility of assignment from void
values, but doesn't talk about
volatile
bit-fields. Perhaps we should explicitly say that the program is ill-formed if a volatile
bit-field
value is assigned to std::ignore
(which is implemented in libstdc++ and MSVC STL, but not in libc++).
[2023-11-03; Reflector poll]
Set priority to 4 after reflector poll. "Specify it as code." "P2968 should fix this."
Proposed resolution: