mclow.lists added a comment. > Since `__new_last` and `__end_` are raw pointers, < should be the same cost as !=. `pointer` is an alias for `allocator_traits<_Alloc>::pointer`, which might not be a raw pointer. http://reviews.llvm.org/D17053