Public Member Functions | List of all members
dsp::FixedSizeFunction< len, Ret(Args...)> Class Template Reference

A type similar to std::function that holds a callable object. More...

Public Member Functions

 FixedSizeFunction () noexcept=default
 Create an empty function. More...
 
 FixedSizeFunction (std::nullptr_t) noexcept
 Create an empty function. More...
 
 FixedSizeFunction (const FixedSizeFunction &)=delete
 
template<typename Callable , typename Fn = Decay<Callable>, IntIfValidConversion< Callable > = 0>
 FixedSizeFunction (Callable &&callable)
 Forwards the passed Callable into the internal storage buffer. More...
 
 FixedSizeFunction (FixedSizeFunction &&other) noexcept
 Move constructor. More...
 
template<size_t otherLen, typename std::enable_if<(otherLen< len), int >::type = 0>
 FixedSizeFunction (FixedSizeFunction< otherLen, Ret(Args...)> &&other) noexcept
 Converting constructor from smaller FixedSizeFunctions. More...
 
FixedSizeFunctionoperator= (std::nullptr_t) noexcept
 Nulls this instance. More...
 
FixedSizeFunctionoperator= (const FixedSizeFunction &)=delete
 
template<typename Callable , IntIfValidConversion< Callable > = 0>
FixedSizeFunctionoperator= (Callable &&callable)
 Assigns a new callable to this instance. More...
 
template<size_t otherLen, typename std::enable_if<(otherLen< len), int >::type = 0>
FixedSizeFunctionoperator= (FixedSizeFunction< otherLen, Ret(Args...)> &&other) noexcept
 Move assignment from smaller FixedSizeFunctions. More...
 
FixedSizeFunctionoperator= (FixedSizeFunction &&other) noexcept
 Move assignment operator. More...
 
 ~FixedSizeFunction () noexcept
 Destructor. More...
 
Ret operator() (Args... args) const
 If this instance is currently storing a callable object, calls that object, otherwise throws std::bad_function_call. More...
 
 operator bool () const noexcept
 Returns true if this instance currently holds a callable. More...
 

Detailed Description

template<size_t len, typename Ret, typename... Args>
class dsp::FixedSizeFunction< len, Ret(Args...)>

A type similar to std::function that holds a callable object.

Unlike std::function, the callable object will always be stored in a buffer of size len that is internal to the FixedSizeFunction instance. This in turn means that creating a FixedSizeFunction instance will never allocate, making FixedSizeFunctions suitable for use in realtime contexts.

Constructor & Destructor Documentation

◆ FixedSizeFunction() [1/6]

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( )
defaultnoexcept

Create an empty function.

◆ FixedSizeFunction() [2/6]

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( std::nullptr_t  )
noexcept

Create an empty function.

◆ FixedSizeFunction() [3/6]

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( const FixedSizeFunction< len, Ret(Args...)> &  )
delete

◆ FixedSizeFunction() [4/6]

template<size_t len, typename Ret , typename... Args>
template<typename Callable , typename Fn = Decay<Callable>, IntIfValidConversion< Callable > = 0>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( Callable &&  callable)

Forwards the passed Callable into the internal storage buffer.

References ignoreUnused(), and jassert.

◆ FixedSizeFunction() [5/6]

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( FixedSizeFunction< len, Ret(Args...)> &&  other)
noexcept

Move constructor.

◆ FixedSizeFunction() [6/6]

template<size_t len, typename Ret , typename... Args>
template<size_t otherLen, typename std::enable_if<(otherLen< len), int >::type = 0>
dsp::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( FixedSizeFunction< otherLen, Ret(Args...)> &&  other)
noexcept

Converting constructor from smaller FixedSizeFunctions.

◆ ~FixedSizeFunction()

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::~FixedSizeFunction ( )
noexcept

Destructor.

Member Function Documentation

◆ operator=() [1/5]

template<size_t len, typename Ret , typename... Args>
FixedSizeFunction& dsp::FixedSizeFunction< len, Ret(Args...)>::operator= ( std::nullptr_t  )
noexcept

Nulls this instance.

◆ operator=() [2/5]

template<size_t len, typename Ret , typename... Args>
FixedSizeFunction& dsp::FixedSizeFunction< len, Ret(Args...)>::operator= ( const FixedSizeFunction< len, Ret(Args...)> &  )
delete

◆ operator=() [3/5]

template<size_t len, typename Ret , typename... Args>
template<typename Callable , IntIfValidConversion< Callable > = 0>
FixedSizeFunction& dsp::FixedSizeFunction< len, Ret(Args...)>::operator= ( Callable &&  callable)

Assigns a new callable to this instance.

◆ operator=() [4/5]

template<size_t len, typename Ret , typename... Args>
template<size_t otherLen, typename std::enable_if<(otherLen< len), int >::type = 0>
FixedSizeFunction& dsp::FixedSizeFunction< len, Ret(Args...)>::operator= ( FixedSizeFunction< otherLen, Ret(Args...)> &&  other)
noexcept

Move assignment from smaller FixedSizeFunctions.

◆ operator=() [5/5]

template<size_t len, typename Ret , typename... Args>
FixedSizeFunction& dsp::FixedSizeFunction< len, Ret(Args...)>::operator= ( FixedSizeFunction< len, Ret(Args...)> &&  other)
noexcept

Move assignment operator.

◆ operator()()

template<size_t len, typename Ret , typename... Args>
Ret dsp::FixedSizeFunction< len, Ret(Args...)>::operator() ( Args...  args) const

If this instance is currently storing a callable object, calls that object, otherwise throws std::bad_function_call.

◆ operator bool()

template<size_t len, typename Ret , typename... Args>
dsp::FixedSizeFunction< len, Ret(Args...)>::operator bool ( ) const
explicitnoexcept

Returns true if this instance currently holds a callable.


The documentation for this class was generated from the following file: