Description
Long ago, we made most of our iterators SCARY (see WG21-N2911 and WG21-N2980). This means that they don't depend on allocators, comparators, etc.
array<T, N>
iterators are an interesting case, as they're still templated on N
:
Lines 2759 to 2760 in 6b0238d
I believe that for IDL=0
it would be better to avoid depending on N
. That would reduce instantiations and improve throughput. For IDL=2
I'm less certain - if we don't template on N
, we have to store it at runtime (which probably isn't a big deal, IDL=2
is already costly). If we do template on N
(like today), then we'd be setting up an unusual situation where iterator types observably change depending on IDL
(not just their representations).
vNext note: Resolving this issue will require breaking binary compatibility. We won't be able to accept pull requests for this issue until the vNext branch is available. See #169 for more information.