VCCC
2024.05
VisualCamp Common C++ library
borrowed_range.hpp
Go to the documentation of this file.
1
//
2
// Created by yonggyulee on 2023/12/24.
3
//
4
5
#ifndef VCCC_RANGES_BORROWED_RANGE_HPP_
6
#define VCCC_RANGES_BORROWED_RANGE_HPP_
7
8
#include <type_traits>
9
10
#include "
vccc/__ranges/__forward_declare.hpp
"
11
#include "
vccc/__ranges/enable_borrowed_range.hpp
"
12
#include "
vccc/__type_traits/conjunction.hpp
"
13
#include "
vccc/__type_traits/disjunction.hpp
"
14
#include "
vccc/__type_traits/remove_cvref.hpp
"
15
16
namespace
vccc
{
17
namespace
ranges {
18
21
22
template
<
typename
R>
23
struct
borrowed_range
24
:
conjunction
<
25
range<R>,
26
disjunction<
27
std::is_lvalue_reference<R>,
28
enable_borrowed_range<remove_cvref_t<R>>
29
>
30
> {};
31
33
34
}
// namespace vccc
35
}
// namespace ranges
36
37
#endif
// VCCC_RANGES_BORROWED_RANGE_HPP_
__forward_declare.hpp
conjunction.hpp
disjunction.hpp
enable_borrowed_range.hpp
vccc
Definition:
directory.h:12
remove_cvref.hpp
vccc::conjunction
Definition:
conjunction.hpp:22
vccc::ranges::borrowed_range
Definition:
borrowed_range.hpp:30
include
vccc
__ranges
borrowed_range.hpp
Generated by
1.9.1