FreeBSD Manual Pages
std::remove_cvref(3) C++ Standard Libary std::remove_cvref(3) NAME std::remove_cvref - std::remove_cvref Synopsis Defined in header <type_traits> template< class T > (since C++20) struct remove_cvref; If the type T is a reference type, provides the member typedef type which is the type referred to by T with its topmost cv-qualifiers removed. Other- wise type is T with its topmost cv-qualifiers removed. The behavior of a program that adds specializations for remove_cvref is undefined. Member types Name Definition type the type referred by T or T itself if it is not a reference, with top-level cv-qualifiers removed Helper types template< class T > (since C++20) using remove_cvref_t = typename remove_cvref<T>::type; Possible implementation template< class T > struct remove_cvref { typedef std::remove_cv_t<std::remove_reference_t<T>> type; }; Notes Feature-test macro: __cpp_lib_remove_cvref Example // Run this code #include <iostream> #include <type_traits> int main() { std::cout << std::boolalpha << std::is_same_v<std::remove_cvref_t<int>, int> << '\n' << std::is_same_v<std::remove_cvref_t<int&>, int> << '\n' << std::is_same_v<std::remove_cvref_t<int&&>, int> << '\n' << std::is_same_v<std::remove_cvref_t<const int&>, int> << '\n' << std::is_same_v<std::remove_cvref_t<const int[2]>, int[2]> << '\n' << std::is_same_v<std::remove_cvref_t<const int(&)[2]>, int[2]> << '\n' << std::is_same_v<std::remove_cvref_t<int(int)>, int(int)> << '\n'; } Output: true true true true true true true See also remove_cv remove_const remove_volatile removes const or/and volatile specifiers from the given type (C++11) (class template) (C++11) (C++11) remove_reference removes a reference from the given type (C++11) (class template) decay applies type transformations as when passing a function argument by (C++11) value (class template) http://cppreference.com 2022.07.31 std::remove_cvref(3)
NAME | Synopsis | Member types | Helper types | Possible implementation | Notes | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::remove_cvref&sektion=3&manpath=FreeBSD+Ports+15.0>
