Stroustrup says in “The C++ Programming Language” (ยง19.4.4, SE):
The idea is that a system may keep a number of fixed-sized buffers ready for fast allocation so that requesting space for n objects may yield space for more than n. It may also yield less, however, so one way of using
get_temporary_buffer()
is to optimistically ask for a lot and then use what happens to be available.
[…] Becauseget_temporary_buffer()
is low-level and likely to be optimized for managing temporary buffers, it should not be used as an alternative to new or allocator::allocate() for obtaining longer-term storage.
He also starts the introduction to the two functions with:
Algorithms often require temporary space to perform acceptably.
… but doesn’t seem to provide a definition of temporary or longer-term anywhere.
An anecdote in “From Mathematics to Generic Programming” mentions that Stepanov provided a bogus placeholder implementation in the original STL design, however:
To his surprise, he discovered years later that all the major vendors that provide STL implementations are still using this terrible implementation […]