| Home | Libraries | People | FAQ | More

## identity

### Authors

- Glen Fernandes

### Overview

The header <boost/functional/identity.hpp> provides the function object `boost::identity` whose `operator()` returns its argument. It is an implementation of C++20's `std::identity` that supports C++03 and above.

### Example

It is commonly used as the default projection in constrained algorithms.

    template<class Range, class Projection = boost::identity>
    void print(Range&& range, Projection projection = {});

### Reference

    namespace boost {

    struct identity {
        using is_transparent = unspecified;

        template<class T>
        T&& operator()(T&& value) const noexcept;
    };

    } /* boost */

#### Operators

`template<class T> T&& operator()(T&& value) const noexcept;`

  Returns `std::forward<T>(value)`.