With std::deque you cannot control the segment size, and implementations differ widely. Is it not obvious that having a block size of 1 or 2 (as e.g. visual c++ does) is very fast.
Visual studio's implementation is almost brokenly slow compared to others.
I totally agree.
Okay, cool - my interpretation of your prev writing was that you believed it was obvious that having a block size of 1 or 2 was fast - but obviously I'm missing something here.
That iteration over a deque can be slow has been known for two decades, Matt Austern wrote an article about it.
Not true. Libstdc++'s implementation iterates almost as fast as vector except for large structs (due to a fixed memory-based block size). http://www.plflib.org/benchmarks_haswell_gcc.htm#rawperformance
Nice work, btw.
Note I said "can" not "must". FWIW, batch_deque also uses a compile-time block size.
Ah - fair enough. And thanks.