82#define __WHEN_OBJECT__ __indep_when__
88 static const me& get();
94 template <
typename R>
R&& ret([[
maybe_unused]]
R&&
r)
const {
return std::move(
r); }
96 const me& run(
const std::function<
void(
void)>&
closure)
const;
100 template <
typename T>
tmay<T> retMay()
const {
return tmay<T>(); }
117#define BY_WHEN ::by::__WHEN_OBJECT__::get()
119#define __WHEN_POSTFIX__ return BY_WHEN
120#define WHEN(condition) \
121 if(condition) __WHEN_POSTFIX__
122#define WHEN_NUL_1(v1) \
123 if(nul(v1)) __WHEN_POSTFIX__
124#define WHEN_NUL_2(v1, v2) \
125 if(nul(v1) || nul(v2)) __WHEN_POSTFIX__
126#define WHEN_NUL_3(v1, v2, v3) \
127 if(nul(v1) || nul(v2) || nul(v3)) __WHEN_POSTFIX__
128#define WHEN_NUL_4(v1, v2, v3, v4) \
129 if(nul(v1) || nul(v2) || nul(v3) || nul(v4)) __WHEN_POSTFIX__
130#define WHEN_NUL_5(v1, v2, v3, v4, v5) \
131 if(nul(v1) || nul(v2) || nul(v3) || nul(v4) || nul(v5)) __WHEN_POSTFIX__
132#define WHEN_NUL_6(v1, v2, v3, v4, v5, v6) \
133 if(nul(v1) || nul(v2) || nul(v3) || nul(v4) || nul(v5) || nul(v6)) __WHEN_POSTFIX__
134#define WHEN_NUL(...) BY_OVERLOAD(WHEN_NUL, __VA_ARGS__)
Conditional logging utility for clog module.
Definition when.hpp:84
Function or object evaluation arguments.
Definition args.hpp:22
func closure with captured object scope
Definition closure.hpp:20
Weak reference smart pointer with type-safe access.
Definition tweak.hpp:16