#include <concepts>
#include <functional>
#include <type_traits>
#include <utility>
#include "Simple-Utility/concepts/stl_extensions.hpp"
Go to the source code of this file.
|
class | sl::functional::BasicClosure< Fn, InvokePolicy, OperatorPolicies > |
| The core class, wrapping one functional object and enabling a variety of composing operators for it. More...
|
|
struct | sl::functional::unwrap_functional< T > |
| Primary template for non BasicClosure types. More...
|
|
struct | sl::functional::unwrap_functional< const BasicClosure< Fn, InvokePolicy, OperatorPolicies... > & > |
| Specialization for const lvalue-references of BasicClosure class. More...
|
|
struct | sl::functional::unwrap_functional< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > & > |
| Specialization for lvalue-references of BasicClosure class. More...
|
|
struct | sl::functional::unwrap_functional< const BasicClosure< Fn, InvokePolicy, OperatorPolicies... > && > |
| Specialization for const rvalue-references of BasicClosure class. More...
|
|
struct | sl::functional::unwrap_functional< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > && > |
| Specialization for rvalue-references of BasicClosure class. More...
|
|
struct | sl::functional::closure_template< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > > |
| Specialization, providing the closure template as member alias. More...
|
|
|
template<class Fn > |
constexpr unwrap_functional_t< Fn && > && | sl::functional::forward_unwrapped (std::remove_reference_t< Fn > &fn) noexcept |
| Unwraps the functional if stored in a closure. Otherwise forwards as-is.
|
|
template<template< class > class Closure, class Fn > |
constexpr Closure< std::remove_cvref_t< Fn > > | sl::functional::envelop (Fn &&fn) noexcept(std::is_nothrow_constructible_v< std::remove_cvref_t< Fn >, Fn >) |
| Wraps the given functional into the given closure type.
|
|