[/ Copyright 2010 John Maddock. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). ] [section:add_lvalue_reference add_lvalue_reference] template struct add_lvalue_reference { typedef __below type; }; template using add_lvalue_reference_t = typename add_lvalue_reference::type; // C++11 and above __type If `T` names an object or function type then the member typedef `type` shall name `T&`; otherwise, if `T` names a type ['rvalue reference to U] then the member typedef type shall name `U&`; otherwise, type shall name `T`. __std_ref 20.7.6.2. __header ` #include ` or ` #include ` [table Examples [ [Expression] [Result Type]] [[`add_lvalue_reference::type`][`int&`]] [[`add_lvalue_reference::type`] [`int const&`]] [[`add_lvalue_reference::type`] [`int*&`]] [[`add_lvalue_reference::type`] [`int*&`]] [[`add_lvalue_reference::type`][`int&`]] [[`add_lvalue_reference::type`][`void`]] ] [all_compilers] [endsect]