Chapter 34. Utilities
Prev | Part XII. Extensions | Next

## Chapter 34. Utilities

The <functional> header contains many additional functors and helper functions, extending section 20.3. They are implemented in the file stl_function.h:

- `identity_element` for addition and multiplication. *

- The functor `identity`, whose `operator()` returns the argument unchanged. *

- Composition functors `unary_function` and `binary_function`, and their helpers `compose1` and `compose2`. *

- `select1st` and `select2nd`, to strip pairs. *

- `project1st` and `project2nd`. *

- A set of functors/functions which always return the same result. They are `constant_void_fun`, `constant_binary_fun`, `constant_unary_fun`, `constant0`, `constant1`, and `constant2`. *

- The class `subtractive_rng`. *

- mem_fun adaptor helpers `mem_fun1` and `mem_fun1_ref` are provided for backwards compatibility.

20.4.1 can use several different allocators; they are described on the main extensions page.

20.4.3 is extended with a special version of `get_temporary_buffer` taking a second argument. The argument is a pointer, which is ignored, but can be used to specify the template type (instead of using explicit function template arguments like the standard version does). That is, in addition to

    get_temporary_buffer<int>(5);

you can also use

    get_temporary_buffer(5, (int*)0);

A class `temporary_buffer` is given in stl_tempbuf.h. *

The specialized algorithms of section 20.4.4 are extended with `uninitialized_copy_n`. *

Prev | Up | Next
Deprecated HP/SGI | Home | Chapter 35. Algorithms