Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::reference_wrapper —
Contains a reference to an object of type
T.
template<typename T> class reference_wrapper { public: // types typedef T type; // construct/copy/destruct explicit reference_wrapper(T&); // access operator T&() const; T& get() const; T* get_pointer() const; }; // constructors reference_wrapper<T> ref(T&); reference_wrapper<T const> cref(T const&);
reference_wrapper
is primarily used to "feed" references to function templates
(algorithms) that take their parameter by value. It provides
an implicit conversion to
T&, which usually allows
the function templates to work on references
unmodified.
reference_wrapper construct/copy/destructexplicit reference_wrapper(T& t);
| Effects: | Constructs a
reference_wrapper
object that stores a reference to
t. |
| Throws: | Does not throw. |
reference_wrapper constructorsreference_wrapper<T> ref(T& t);
| Returns: | reference_wrapper<T>(t) |
| Throws: | Does not throw. |
reference_wrapper<T const> cref(T const& t);
| Returns: | reference_wrapper<T const>(t) |
| Throws: | Does not throw. |
| Copyright © 1999, 2000 Jaakko Järvi Copyright © 2001, 2002 Peter Dimov Copyright © 2002 David Abrahams |