[/ Copyright 2015 Peter Dimov. 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:declval declval] template typename add_rvalue_reference::type declval() noexcept; // as unevaluated operand __std_ref C++11 20.2.4 [declval]. __header ` #include ` or ` #include ` The function template `declval` is used when a value of a certain type is required in a type computation context. For example, the type of the result of adding an `int` and a `float` can be obtained with the expression `decltype( declval() + declval() )`. [endsect]