|
1907 | 1907 | \lhdr{Template} & \rhdr{Comments} \\ \capsep |
1908 | 1908 | \endhead |
1909 | 1909 |
|
1910 | | -\indexlibraryglobal{type_identity}% |
1911 | 1910 | \tcode{template<class T>\br |
1912 | | - struct type_identity;} |
| 1911 | + struct \libglobal{type_identity};} |
1913 | 1912 | & |
1914 | 1913 | The member typedef \tcode{type} denotes \tcode{T}. \\ \rowsep |
1915 | 1914 |
|
1916 | | -\indexlibraryglobal{remove_cvref}% |
1917 | | -\tcode{template<class T>\br struct remove_cvref;} |
| 1915 | +\tcode{template<class T>\br struct \libglobal{remove_cvref};} |
1918 | 1916 | & |
1919 | 1917 | The member typedef \tcode{type} denotes |
1920 | 1918 | \tcode{remove_cv_t<remove_reference_t<T>>}. |
1921 | 1919 | \\ \rowsep |
1922 | 1920 |
|
1923 | | -\indexlibraryglobal{decay}% |
1924 | | -\tcode{template<class T>\br struct decay;} |
| 1921 | +\tcode{template<class T>\br struct \libglobal{decay};} |
1925 | 1922 | & |
1926 | 1923 | Let \tcode{U} be \tcode{remove_reference_t<T>}. If \tcode{is_array_v<U>} is |
1927 | 1924 | \tcode{true}, the member typedef \tcode{type} denotes |
|
1937 | 1934 | \end{tailnote} |
1938 | 1935 | \\ \rowsep |
1939 | 1936 |
|
1940 | | -\indexlibraryglobal{enable_if}% |
1941 | | -\tcode{template<bool B, class T = void>} \tcode{struct enable_if;} |
| 1937 | +\tcode{template<bool B, class T = void>} \tcode{struct \libglobal{enable_if};} |
1942 | 1938 | & |
1943 | 1939 | If \tcode{B} is \tcode{true}, the member typedef \tcode{type} |
1944 | 1940 | denotes \tcode{T}; otherwise, there shall be no member |
1945 | 1941 | \tcode{type}. \\ \rowsep |
1946 | 1942 |
|
1947 | 1943 | \tcode{template<bool B, class T,} |
1948 | 1944 | \tcode{class F>}\br |
1949 | | - \tcode{struct conditional;} |
| 1945 | + \tcode{struct \libglobal{conditional};} |
1950 | 1946 | & |
1951 | 1947 | If \tcode{B} is \tcode{true}, the member typedef \tcode{type} denotes \tcode{T}. |
1952 | 1948 | If \tcode{B} is \tcode{false}, the member typedef \tcode{type} denotes \tcode{F}. \\ \rowsep |
|
1959 | 1955 | Each type in the template parameter pack \tcode{T} shall be |
1960 | 1956 | complete, \cv{}~\keyword{void}, or an array of unknown bound. \\ \rowsep |
1961 | 1957 |
|
1962 | | -\indexlibraryglobal{basic_common_reference}% |
1963 | 1958 | \tcode{template<class, class,} |
1964 | 1959 | \hspace*{2ex}\tcode{template<class> class,} |
1965 | 1960 | \hspace*{2ex}\tcode{template<class> class>} |
1966 | 1961 | \keyword{struct} |
1967 | | - \hspace*{2ex}\tcode{basic_common_reference;} |
| 1962 | + \hspace*{2ex}\tcode{\libglobal{basic_common_reference};} |
1968 | 1963 | & |
1969 | 1964 | Unless this trait is specialized, |
1970 | 1965 | there shall be no member \tcode{type}. \\ \rowsep |
1971 | 1966 |
|
1972 | | -\indexlibraryglobal{common_reference}% |
1973 | | -\tcode{template<class... T>} \tcode{struct common_reference;} |
| 1967 | +\tcode{template<class... T>} \tcode{struct \libglobal{common_reference};} |
1974 | 1968 | & |
1975 | 1969 | The member \grammarterm{typedef-name} \tcode{type} is defined or omitted |
1976 | 1970 | as specified below. Each type in the parameter pack \tcode{T} shall |
1977 | 1971 | be complete or \cv{} \keyword{void}. \\ \rowsep |
1978 | 1972 |
|
1979 | | -\indexlibraryglobal{underlying_type}% |
1980 | 1973 | \tcode{template<class T>}\br |
1981 | | - \tcode{struct underlying_type;} |
| 1974 | + \tcode{struct \libglobal{underlying_type};} |
1982 | 1975 | & |
1983 | 1976 | If \tcode{T} is an enumeration type, the member typedef \tcode{type} denotes |
1984 | 1977 | the underlying type of \tcode{T}\iref{dcl.enum}; |
1985 | 1978 | otherwise, there is no member \tcode{type}.\br |
1986 | 1979 | \mandates \tcode{T} is not an incomplete enumeration type. \\ \rowsep |
1987 | 1980 |
|
1988 | | -\indexlibraryglobal{invoke_result}% |
1989 | 1981 | \tcode{template<class Fn,}\br |
1990 | 1982 | \tcode{class... ArgTypes>}\br |
1991 | | - \tcode{struct invoke_result;} |
| 1983 | + \tcode{struct \libglobal{invoke_result};} |
1992 | 1984 | & |
1993 | 1985 | If the expression \tcode{\placeholdernc{INVOKE}(declval<Fn>(), declval<ArgTypes>()...)}\iref{func.require} |
1994 | 1986 | is well-formed when treated as an unevaluated operand\iref{term.unevaluated.operand}, |
|
2009 | 2001 | are complete types, \cv{}~\keyword{void}, or arrays of |
2010 | 2002 | unknown bound.\\ \rowsep |
2011 | 2003 |
|
2012 | | -\indexlibraryglobal{unwrap_reference}% |
2013 | | -\tcode{template<class T>} \tcode{struct unwrap_reference;} |
| 2004 | +\tcode{template<class T>} \tcode{struct \libglobal{unwrap_reference};} |
2014 | 2005 | & |
2015 | 2006 | If \tcode{T} is |
2016 | 2007 | a specialization \tcode{reference_wrapper<X>} for some type \tcode{X}, |
2017 | 2008 | the member typedef \tcode{type} of \tcode{unwrap_reference<T>} |
2018 | 2009 | denotes \tcode{X\&}, |
2019 | 2010 | otherwise \tcode{type} denotes \tcode{T}. \\ \rowsep |
2020 | 2011 |
|
2021 | | -\indexlibraryglobal{unwrap_ref_decay}% |
2022 | | -\tcode{template<class T>} \tcode{unwrap_ref_decay;} |
| 2012 | +\tcode{template<class T>} \tcode{\libglobal{unwrap_ref_decay};} |
2023 | 2013 | & |
2024 | 2014 | The member typedef \tcode{type} of \tcode{unwrap_ref_decay<T>} |
2025 | 2015 | denotes the type \tcode{unwrap_reference_t<decay_t<T>>}.\\ |
|
0 commit comments