17template <
typename Func>
19 static_assert(!std::is_reference_v<Func>);
22 constexpr explicit LazyPrvalue(
const Func& func) : func_(func) {}
24 constexpr explicit LazyPrvalue(Func&& func) : func_(std::move(func)) {}
29 constexpr operator std::invoke_result_t<Func&&>() && {
30 return std::move(func_)();