You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We decided to rename it to seqan3::views::elements and move it to utility, because the standard does not allow custom tuple types right now. The ultimate goal is to get that behaviour into the standard and simply remove it :)
I filed an issue at gcc and after that I wrote a LEWG-issue to the standard
std::views::elements only accepts types that are defined on std::get
Dear LWGChair,
this is my first time reporting, so I'm not too familiar how to do this, please be kind!
std::views::elements does not work with custom-tuple types that have otherwise working structured bindings (see [1] for an example).
Right now, [2] defines get-element(const iterator_t<Base>& i) that calls get<N>(*i); and [3] clarifies that it actually means to call get qualified, i.e. std::get<N>(*i).
Note that Tim Song in [4] suggests that get should be explicitly std::get, but it sounds to me more like a fix to the general problem, that get would otherwise be needed to be called as std::ranges::get and that would be obviously wrong, as an actual requirement.
I think, and here I need some help, it would be good if the standard defines get-element in a way that get will be called unqualified. To allow all tuple types that have working structured bindings, too.
Tasks
The text was updated successfully, but these errors were encountered: