Iros
 
Loading...
Searching...
No Matches
overload.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/function/piped.h"
6#include "di/meta/util.h"
7#include "di/util/forward.h"
8
9namespace di::function {
10namespace detail {
11 template<typename... Funs>
12 struct OverloadImpl : Funs... {
13 using Funs::operator()...;
14 };
15
16 template<typename... Funs>
17 OverloadImpl(Funs&&...) -> OverloadImpl<Funs...>;
18
20 template<typename... Funs>
22 constexpr auto operator()(Funs&&... functions) const {
23 return function::piped(OverloadImpl(util::forward<Funs>(functions)...));
24 }
25 };
26}
27
28constexpr inline auto overload = detail::OverloadFunction {};
29}
30
31namespace di {
33}
Definition operations.h:11
Definition bind_back.h:16
OverloadImpl(Funs &&...) -> OverloadImpl< Funs... >
Definition as_bool.h:8
constexpr auto piped(F &&function)
Definition piped.h:56
constexpr auto overload
Definition overload.h:28
Definition zstring_parser.h:9
Definition overload.h:12