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
13/// \ingroup type_traits
14template <typename From, typename T0>
15struct copy_cv {
16 using type = T0;
17};
18
19template <typename From, typename T0>
20struct copy_cv<From const, T0> {
21 using type = add_const_t<T0>;
22};
23
24template <typename From, typename T0>
25struct copy_cv<From volatile, T0> {
26 using type = add_volatile_t<T0>;
27};
28
29template <typename From, typename T0>
30struct copy_cv<From const volatile, T0> {
31 using type = add_cv_t<T0>;
32};
33
34/// \ingroup type_traits
35/// \relates copy_cv
36template <typename From, typename To>
37using copy_cv_t = typename copy_cv<From, To>::type;
38
39} // namespace etl
40
41#endif // TETL_TYPE_TRAITS_COPY_CV_HPP
Definition adjacent_find.hpp:9
Definition copy_cv.hpp:15