Iros
 
Loading...
Searching...
No Matches
if_success.h
Go to the documentation of this file.
1#pragma once
2
5#include "di/meta/util.h"
6#include "di/meta/vocab.h"
7
8namespace di::vocab {
9namespace detail {
11 template<concepts::Expected T, concepts::InvocableTo<void, meta::Like<T, meta::ExpectedValue<T>>&> F>
13 constexpr auto operator()(T&& expected, F&& function) const {
14 if (expected) {
15 function::invoke(util::forward<F>(function), expected.value());
16 }
17 return util::forward<T>(expected);
18 }
19
20 template<concepts::Expected T, concepts::InvocableTo<void> F>
22 constexpr auto operator()(T&& expected, F&& function) const {
23 if (expected) {
24 function::invoke(util::forward<F>(function));
25 }
26 return util::forward<T>(expected);
27 }
28 };
29}
30
32}
33
34namespace di {
36}
Definition core.h:128
Definition as_bool.h:8
constexpr auto invoke
Definition invoke.h:100
constexpr auto curry_back
Definition curry_back.h:141
constexpr auto c_
A value of type Constexpr<val>.
Definition constexpr.h:252
Definition erasure_cast.h:7
Definition lazy.h:165
constexpr auto if_success
Definition if_success.h:31
Definition zstring_parser.h:9
Definition if_success.h:10