#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.
|
| |