System::Func< Args > Class Template Reference

Function delegate. This type should be allocated on stack and passed to functions by value or by reference. Never use System::SmartPtr class to manage objects of this type. More...

Inherits System::MulticastDelegate<::System::Detail::FuncArgsReorderer< void(), Args... >::type >.

Public Member Functions

 Func ()
 Default constructor that creates null-Func. More...
 
template<typename T >
 Func (T &&arg)
 Constructor that constructs Func object and assigns value (either actual callback or nullptr) to it. More...
 
 Func (const Func &func)
 Copy constructor. More...
 
 Func (Func &&func)
 Move constructor. More...
 
 ~Func ()
 Destructor. More...
 
Funcoperator= (const Func &other)
 Copy assignment. More...
 
Funcoperator= (Func &&other)
 Move assignment. More...
 

Detailed Description

template<typename... Args>
class System::Func< Args >

Function delegate. This type should be allocated on stack and passed to functions by value or by reference. Never use System::SmartPtr class to manage objects of this type.

Template Parameters
ArgsCall arguments, then mandatory return type.

Constructor & Destructor Documentation

◆ Func() [1/4]

template<typename... Args>
System::Func< Args >::Func ( )
inline

Default constructor that creates null-Func.

◆ Func() [2/4]

template<typename... Args>
template<typename T >
System::Func< Args >::Func ( T &&  arg)
inline

Constructor that constructs Func object and assigns value (either actual callback or nullptr) to it.

Template Parameters
TArgument type.
Parameters
argArgument.

◆ Func() [3/4]

template<typename... Args>
System::Func< Args >::Func ( const Func< Args > &  func)
inline

Copy constructor.

Parameters
funcObject to copy data from.

◆ Func() [4/4]

template<typename... Args>
System::Func< Args >::Func ( Func< Args > &&  func)
inline

Move constructor.

Parameters
funcObject to move data from.

◆ ~Func()

template<typename... Args>
System::Func< Args >::~Func ( )
inline

Destructor.

Member Function Documentation

◆ operator=() [1/2]

template<typename... Args>
Func& System::Func< Args >::operator= ( const Func< Args > &  other)
inline

Copy assignment.

Parameters
otherFunc delegate to copy to current object.
Returns
Reference to this.

◆ operator=() [2/2]

template<typename... Args>
Func& System::Func< Args >::operator= ( Func< Args > &&  other)
inline

Move assignment.

Parameters
otherFunc delegate to move to current object. The state can be changed.
Returns
Reference to this.