mirror of
https://github.com/boostorg/type_traits.git
synced 2026-01-19 16:52:13 +00:00
45 lines
1020 B
Plaintext
45 lines
1020 B
Plaintext
[/
|
|
Copyright 2007 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:decay decay]
|
|
|
|
template <class T>
|
|
struct decay
|
|
{
|
|
typedef __below type;
|
|
};
|
|
|
|
template <class T> using decay_t = typename decay<T>::type; // C++11 and above
|
|
|
|
__type Let `U` be the result of `remove_reference<T>::type`, then if `U` is
|
|
an array type, the result is `remove_extent<U>::type*`, otherwise if `U` is a
|
|
function type then the result is `U*`, otherwise the result is `remove_cv<U>::type`.
|
|
|
|
__std_ref 3.9.1.
|
|
|
|
__header ` #include <boost/type_traits/decay.hpp>` or ` #include <boost/type_traits.hpp>`
|
|
|
|
[table Examples
|
|
|
|
[ [Expression] [Result Type]]
|
|
|
|
[[`decay<int[2][3]>::type`][`int[3]*`]]
|
|
|
|
[[`decay<int(&)[2]>::type`] [`int*`]]
|
|
|
|
[[`decay<int(&)(double)>::type`] [`int(*)(double)`]]
|
|
|
|
[[`int(*)(double)`] [`int(*)(double)`]]
|
|
[[`int(double)`] [`int(*)(double)`]]
|
|
|
|
]
|
|
|
|
[all_compilers]
|
|
|
|
[endsect]
|
|
|