# Identity

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)`

Copyright 2021 Glen Joseph Fernandes.

Distributed under the Boost Software License, Version 1.0.