Distributed Ranges
Loading...
Searching...
No Matches
view_detectors.hpp
1// SPDX-FileCopyrightText: Intel Corporation
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#pragma once
6
7#include <type_traits>
8
9namespace dr {
10
11template <typename T> struct is_ref_view : std::false_type {};
12template <rng::range R>
13struct is_ref_view<rng::ref_view<R>> : std::true_type {};
14
15template <typename T> inline constexpr bool is_ref_view_v = is_ref_view<T>{};
16
17template <typename T> struct is_iota_view : std::false_type {};
18template <std::weakly_incrementable W>
19struct is_iota_view<rng::iota_view<W>> : std::true_type {};
20
21template <typename T> inline constexpr bool is_iota_view_v = is_iota_view<T>{};
22
23template <typename T> struct is_take_view : std::false_type {};
24template <typename T>
25struct is_take_view<rng::take_view<T>> : std::true_type {};
26
27template <typename T>
28inline constexpr bool is_take_view_v = is_take_view<T>::value;
29
30template <typename T> struct is_drop_view : std::false_type {};
31template <typename T>
32struct is_drop_view<rng::drop_view<T>> : std::true_type {};
33
34template <typename T>
35inline constexpr bool is_drop_view_v = is_drop_view<T>::value;
36
37template <typename T> struct is_subrange_view : std::false_type {};
38template <typename T>
39struct is_subrange_view<rng::subrange<T>> : std::true_type {};
40
41template <typename T>
42inline constexpr bool is_subrange_view_v = is_subrange_view<T>::value;
43
44template <typename T> struct is_sliding_view : std::false_type {};
45template <typename T>
46struct is_sliding_view<rng::sliding_view<T>> : std::true_type {};
47template <typename T>
48inline constexpr bool is_sliding_view_v =
50
51template <typename T> struct is_zip_view : std::false_type {};
52
53template <typename... Views>
54struct is_zip_view<rng::zip_view<Views...>> : std::true_type {};
55
56template <typename T>
57inline constexpr bool is_zip_view_v = is_zip_view<T>::value;
58
59} // namespace dr
Definition: view_detectors.hpp:30
Definition: view_detectors.hpp:17
Definition: view_detectors.hpp:11
Definition: view_detectors.hpp:44
Definition: view_detectors.hpp:37
Definition: view_detectors.hpp:23
Definition: view_detectors.hpp:51