Sen API
Sen Libraries
Loading...
Searching...
No Matches
move_only_function.h File Reference
#include <cstddef>
#include <functional>
#include <type_traits>
#include <utility>
#include "detail/move_only_function_impl.h"

Go to the source code of this file.

Classes

struct  sen::std_util::detail::IsInPlaceType< T >
struct  sen::std_util::detail::IsInPlaceType< std::in_place_type_t< T > >
class  sen::std_util::detail::MoveOnlyFunctionBase
union  sen::std_util::detail::MoveOnlyFunctionBase::SmallSizeBuffer.__unnamed0__

Namespaces

namespace  sen
namespace  sen::std_util
namespace  sen::std_util::detail

Macros

#define GENERATE_WITH_CV
#define GENERATE_WITH_REF
#define GENERATE_WITH_SELF_QUALIFIERS   &
#define GENERATE_WITH_CV   const
#define GENERATE_WITH_REF
#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV&
#define GENERATE_WITH_CV
#define GENERATE_WITH_REF   &
#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF
#define GENERATE_WITH_CV
#define GENERATE_WITH_REF   &&
#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF
#define GENERATE_WITH_CV   const
#define GENERATE_WITH_REF   &
#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF
#define GENERATE_WITH_CV   const
#define GENERATE_WITH_REF   &&
#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF

Typedefs

template<typename... FwdArgs>
using sen::std_util::move_only_function = detail::MoveOnlyFunctionImpl<FwdArgs...>

Functions

template<class R, class F, class... Args, std::enable_if_t< std::is_invocable_r_v< R, F, Args... >, bool > = true>
constexpr R sen::std_util::detail::invoke_r (F &&f, Args &&... args) noexcept(std::is_nothrow_invocable_r_v< R, F, Args... >)

Variables

template<typename FunctionType>
constexpr bool sen::std_util::detail::is_move_only_function_v = false
template<typename FunctionType>
constexpr bool sen::std_util::detail::is_move_only_function_v< MoveOnlyFunctionImpl< FunctionType > > = true

Class Documentation

◆ sen::std_util::detail::MoveOnlyFunctionBase::SmallSizeBuffer.__unnamed0__

union sen::std_util::detail::MoveOnlyFunctionBase::SmallSizeBuffer.__unnamed0__
Class Members
void * ptrToStoredCallable
byte data[bufferSize]

Macro Definition Documentation

◆ GENERATE_WITH_CV [1/6]

#define GENERATE_WITH_CV

◆ GENERATE_WITH_REF [1/6]

#define GENERATE_WITH_REF

◆ GENERATE_WITH_SELF_QUALIFIERS [1/6]

#define GENERATE_WITH_SELF_QUALIFIERS   &

◆ GENERATE_WITH_CV [2/6]

#define GENERATE_WITH_CV   const

◆ GENERATE_WITH_REF [2/6]

#define GENERATE_WITH_REF

◆ GENERATE_WITH_SELF_QUALIFIERS [2/6]

#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV&

◆ GENERATE_WITH_CV [3/6]

#define GENERATE_WITH_CV

◆ GENERATE_WITH_REF [3/6]

#define GENERATE_WITH_REF   &

◆ GENERATE_WITH_SELF_QUALIFIERS [3/6]

#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF

◆ GENERATE_WITH_CV [4/6]

#define GENERATE_WITH_CV

◆ GENERATE_WITH_REF [4/6]

#define GENERATE_WITH_REF   &&

◆ GENERATE_WITH_SELF_QUALIFIERS [4/6]

#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF

◆ GENERATE_WITH_CV [5/6]

#define GENERATE_WITH_CV   const

◆ GENERATE_WITH_REF [5/6]

#define GENERATE_WITH_REF   &

◆ GENERATE_WITH_SELF_QUALIFIERS [5/6]

#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF

◆ GENERATE_WITH_CV [6/6]

#define GENERATE_WITH_CV   const

◆ GENERATE_WITH_REF [6/6]

#define GENERATE_WITH_REF   &&

◆ GENERATE_WITH_SELF_QUALIFIERS [6/6]

#define GENERATE_WITH_SELF_QUALIFIERS   GENERATE_WITH_CV GENERATE_WITH_REF