Loading...
Searching...
No Matches
juce::FixedSizeFunction< len, Ret(Args...)> Class Template Reference

Detailed Description

template<size_t len, typename Ret, typename... Args>
class juce::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.


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

Public Member Functions

 FixedSizeFunction () noexcept=default
 Create an empty function.
 FixedSizeFunction (std::nullptr_t) noexcept
 Create an empty function.
 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.
 FixedSizeFunction (FixedSizeFunction &&other) noexcept
 Move constructor.
template<size_t otherLen, std::enable_if_t<(otherLen< len), int > = 0>
 FixedSizeFunction (FixedSizeFunction< otherLen, Ret(Args...)> &&other) noexcept
 Converting constructor from smaller FixedSizeFunctions.
FixedSizeFunctionoperator= (std::nullptr_t) noexcept
 Nulls this instance.
FixedSizeFunctionoperator= (const FixedSizeFunction &)=delete
template<typename Callable, IntIfValidConversion< Callable > = 0>
FixedSizeFunctionoperator= (Callable &&callable)
 Assigns a new callable to this instance.
template<size_t otherLen, std::enable_if_t<(otherLen< len), int > = 0>
FixedSizeFunctionoperator= (FixedSizeFunction< otherLen, Ret(Args...)> &&other) noexcept
 Move assignment from smaller FixedSizeFunctions.
FixedSizeFunctionoperator= (FixedSizeFunction &&other) noexcept
 Move assignment operator.
 ~FixedSizeFunction () noexcept
 Destructor.
Ret operator() (Args... args) const
 If this instance is currently storing a callable object, calls that object, otherwise throws std::bad_function_call.
 operator bool () const noexcept
 Returns true if this instance currently holds a callable.

Constructors and Destructors

◆ FixedSizeFunction() [1/6]

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

Create an empty function.

◆ FixedSizeFunction() [2/6]

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

Create an empty function.

References FixedSizeFunction.

◆ FixedSizeFunction() [3/6]

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

References FixedSizeFunction.

◆ FixedSizeFunction() [4/6]

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

Forwards the passed Callable into the internal storage buffer.

References jassert.

◆ FixedSizeFunction() [5/6]

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

Move constructor.

References FixedSizeFunction.

◆ FixedSizeFunction() [6/6]

template<size_t len, typename Ret, typename... Args>
template<size_t otherLen, std::enable_if_t<(otherLen< len), int > = 0>
juce::FixedSizeFunction< len, Ret(Args...)>::FixedSizeFunction ( FixedSizeFunction< otherLen, Ret(Args...)> && other)
inlinenoexcept

Converting constructor from smaller FixedSizeFunctions.

◆ ~FixedSizeFunction()

template<size_t len, typename Ret, typename... Args>
juce::FixedSizeFunction< len, Ret(Args...)>::~FixedSizeFunction ( )
inlinenoexcept

Destructor.

Member Functions

◆ operator=() [1/5]

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

Nulls this instance.

◆ operator=() [2/5]

template<size_t len, typename Ret, typename... Args>
FixedSizeFunction & juce::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 & juce::FixedSizeFunction< len, Ret(Args...)>::operator= ( Callable && callable)
inline

Assigns a new callable to this instance.

References FixedSizeFunction.

◆ operator=() [4/5]

template<size_t len, typename Ret, typename... Args>
template<size_t otherLen, std::enable_if_t<(otherLen< len), int > = 0>
FixedSizeFunction & juce::FixedSizeFunction< len, Ret(Args...)>::operator= ( FixedSizeFunction< otherLen, Ret(Args...)> && other)
inlinenoexcept

Move assignment from smaller FixedSizeFunctions.

◆ operator=() [5/5]

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

Move assignment operator.

◆ operator()()

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

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>
juce::FixedSizeFunction< len, Ret(Args...)>::operator bool ( ) const
inlineexplicitnoexcept

Returns true if this instance currently holds a callable.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram