tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
copy_cv.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2025 Tobias Hienzsch
3
4#ifndef TETL_TYPE_TRAITS_COPY_CV_HPP
5#define TETL_TYPE_TRAITS_COPY_CV_HPP
6
7#include <etl/_type_traits/add_const.hpp>
8#include <etl/_type_traits/add_cv.hpp>
9#include <etl/_type_traits/add_volatile.hpp>
10
11namespace etl {
12
13template <typename From, typename T0>
14struct copy_cv {
15 using type = T0;
16};
17
18template <typename From, typename T0>
19struct copy_cv<From const, T0> {
20 using type = add_const_t<T0>;
21};
22
23template <typename From, typename T0>
24struct copy_cv<From volatile, T0> {
25 using type = add_volatile_t<T0>;
26};
27
28template <typename From, typename T0>
29struct copy_cv<From const volatile, T0> {
30 using type = add_cv_t<T0>;
31};
32
33template <typename A, typename B>
34using copy_cv_t = typename copy_cv<A, B>::type;
35
36} // namespace etl
37
38#endif // TETL_TYPE_TRAITS_COPY_CV_HPP
Definition adjacent_find.hpp:9
Definition copy_cv.hpp:14