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

PrevUpHomeNext

add_reference

[Note] Note

This trait has been made obsolete by add_lvalue_reference and add_rvalue_reference, and new code should use these new traits rather than is_reference which is retained for backwards compatibility only.

template <class T>
struct add_reference
{
   typedef see-below type;
};

type: If T is not a reference type then T&, otherwise T.

C++ Standard Reference: 8.3.2.

Compiler Compatibility: If the compiler does not support partial specialization of class-templates then this template will compile, but the member type will always be the same as type T except where compiler workarounds have been applied.

Header: #include <boost/type_traits/add_reference.hpp> or #include <boost/type_traits.hpp>

Table 1.14. Examples

Expression

Result Type

add_reference<int>::type

int&

add_reference<int const&>::type

int const&

add_reference<int*>::type

int*&

add_reference<int*&>::type

int*&



PrevUpHomeNext