Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <type_traits> 7 : 8 : /// \ingroup TypeTraitsGroup 9 : /// C++ STL code present in C++20 10 : namespace cpp20 { 11 : /// \ingroup TypeTraitsGroup 12 : template <class T> 13 0 : struct remove_cvref { 14 : // clang-tidy use using instead of typedef 15 0 : typedef std::remove_cv_t<std::remove_reference_t<T>> type; // NOLINT 16 : }; 17 : 18 : /// \ingroup TypeTraitsGroup 19 : template <class T> 20 0 : using remove_cvref_t = typename remove_cvref<T>::type; 21 : } // namespace cpp20