https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118293
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Similarly: using V = std::deque<ValueType, A<ValueType>>; V v; printf("Default-constructed capacity: %zu\n", capacity_of_v()); v.assign(capacity_of_v(), 1); printf("Capacity after assign: %zu\n", capacity_of_v()); gives: Default-constructed capacity: 128 Capacity after assign: 256 Fixing it in _M_reserve_elements_at_front would help this case too.