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
The forward declarations of these two primary templates (which are not defined) are shown in [tuple.syn], [utility.syn], and [array.syn], but not in [ranges.syn], which is inconsistent.
Perhaps it should be resolved editorially, as the declarations of these two primary templates are effectively required in <ranges>.
The text was updated successfully, but these errors were encountered:
One could argue that the public names need not be made available, even if partial specializations are shown. tuple.helper p6+8 say
In addition to being available via inclusion of the <tuple> header, the template is available when any of the headers <array>, <ranges>, or <utility> are included.
And we do make the primary templates available in <array> and <utility>, where we also introduce partial specializations. So, this looks like an oversight.
In general it's true that names user implicitly in a header are not necessarily made available by that header. But for partial specializations I think it's reasonable to expect the primary template to be declared too (I don't see much advantage to introducing compiler magic to make it work). And in this case we do say they're made available by <ranges>.
The forward declarations of these two primary templates (which are not defined) are shown in [tuple.syn], [utility.syn], and [array.syn], but not in [ranges.syn], which is inconsistent.
Perhaps it should be resolved editorially, as the declarations of these two primary templates are effectively required in
<ranges>
.The text was updated successfully, but these errors were encountered: