1//===-- remove_cv type_traits -----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8#ifndef LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CV_H
9#define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CV_H
10
11#include "src/__support/CPP/type_traits/type_identity.h"
12
13namespace LIBC_NAMESPACE::cpp {
14
15// remove_cv
16template <class T> struct remove_cv : cpp::type_identity<T> {};
17template <class T> struct remove_cv<const T> : cpp::type_identity<T> {};
18template <class T> struct remove_cv<volatile T> : cpp::type_identity<T> {};
19template <class T>
20struct remove_cv<const volatile T> : cpp::type_identity<T> {};
21template <class T> using remove_cv_t = typename remove_cv<T>::type;
22
23} // namespace LIBC_NAMESPACE::cpp
24
25#endif // LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_REMOVE_CV_H
26

source code of libc/src/__support/CPP/type_traits/remove_cv.h