tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
add_lvalue_reference.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2019 Tobias Hienzsch
3
4#ifndef TETL_TYPE_TRAITS_ADD_LVALUE_REFERENCE_HPP
5#define TETL_TYPE_TRAITS_ADD_LVALUE_REFERENCE_HPP
6
7#include <etl/_type_traits/type_identity.hpp>
8
9namespace etl {
10
11namespace detail {
12
13template <typename T>
14auto try_add_lvalue_reference(int) -> type_identity<T&>;
15
16template <typename T>
17auto try_add_lvalue_reference(...) -> type_identity<T>;
18
19} // namespace detail
20
21/// \brief Creates a lvalue reference type of T.
22/// \headerfile etl/type_traits.hpp
23template <typename T>
24struct add_lvalue_reference : decltype(detail::try_add_lvalue_reference<T>(0)) { };
25
26/// \relates add_lvalue_reference
27template <typename T>
28using add_lvalue_reference_t = typename add_lvalue_reference<T>::type;
29
30} // namespace etl
31
32#endif // TETL_TYPE_TRAITS_ADD_LVALUE_REFERENCE_HPP
Definition adjacent_find.hpp:9
Creates a lvalue reference type of T.
Definition add_lvalue_reference.hpp:24
Definition type_identity.hpp:11