CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
is_input_range.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
13
14#include <type_traits>
15
16namespace CeresEngine::traits {
17
19 template<class T, class = void> struct is_input_range : std::false_type {};
20
21 template<class T>
22 struct is_input_range<T, std::void_t<iterator_t<T>>> : std::conjunction<
23 // clang-format off
24 is_range<T>,
25 is_input_iterator<iterator_t<T>>
26 // clang-format off
27 >
28 {};
29
31 template <class T> bool constexpr is_input_range_v = is_input_range<T>::value;
32
33
35 template <class T>
37
38} // namespace CeresEngine::traits
Definition is_input_range.hpp:36
Definition Partitioner.hpp:146
bool constexpr is_input_range_v
A C++17 type trait equivalent to the C++20 input_range concept.
Definition is_input_range.hpp:31
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition Span.hpp:668
A C++17 type trait equivalent to the C++20 input_range concept.
Definition is_input_range.hpp:19