CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
is_indirectly_binary_invocable.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
20 template<class F, class I1, class I2, class = void> struct is_indirectly_binary_invocable : std::false_type {};
21
22 template<class F, class I1, class I2>
25 // clang-format off
26 is_indirectly_readable_v<I1> &&
27 is_indirectly_readable_v<I2> &&
28 std::is_copy_constructible_v<F> &&
29 std::is_invocable_v<F&, iter_value_t<I1>&, iter_value_t<I2>&>
30 // clang-format on
31 >> : std::true_type {};
32
34 template<class F, class I1, class I2> bool constexpr is_indirectly_binary_invocable_v = is_indirectly_binary_invocable<F, I1, I2>::value;
35
37 template<class F, class I1, class I2>
39
40} // namespace CeresEngine::traits
Definition is_indirectly_binary_invocable.hpp:38
Definition Partitioner.hpp:146
bool constexpr is_indirectly_binary_invocable_v
A C++17 type trait equivalent to the C++20 indirectly_binary_invocable concept.
Definition is_indirectly_binary_invocable.hpp:34
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 indirectly_binary_invocable concept.
Definition is_indirectly_binary_invocable.hpp:20