yasmine
assembly_cpp11.hpp File Reference
#include <type_traits>
#include "assembly_common.hpp"
#include "essentials/macro_helpers.hpp"

Go to the source code of this file.

Macros

#define Y_BEHAVIOR_ACTION(_action)   sxy::behavior_function( [this]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } )
 Macro for using a method as a behavior. More...
 
#define Y_BEHAVIOR_FREE_ACTION(_action)   sxy::behavior_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } )
 Macro for using a free function as a behavior. More...
 
#define Y_GUARD_ACTION(_action)   sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } )
 Macro for using a method as a guard. More...
 
#define Y_GUARD_FREE_ACTION(_action)   sxy::constraint_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } )
 Macro for using a free function as a guard. More...
 
#define Y_BEHAVIOR_METHOD_EVENT(...)   EXPAND( Y_BEHAVIOR_METHOD2( this, __VA_ARGS__ ) )
 The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters. More...
 
#define Y_BEHAVIOR_FUNCTION_EVENT(...)   EXPAND( Y_BEHAVIOR_FUNCTION2( __VA_ARGS__ ) )
 The macro creates a behavior_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters. More...
 
#define VA_SELECT_WITH_CLASS_INSTANCE(NAME, CLASS_INSTANCE, ...)   EXPAND( SELECT( NAME, VA_SIZE(__VA_ARGS__) )(CLASS_INSTANCE, __VA_ARGS__) )
 
#define Y_BEHAVIOR_METHOD2(CLASS_INSTANCE, ...)   EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_BEHAVIOR_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__))
 The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters. More...
 
#define Y_BEHAVIOR_FUNCTION2(...)   EXPAND( VA_SELECT(Y_BEHAVIOR_FUNCTION2_SELECT, __VA_ARGS__) )
 The macro creates a behavior_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters. More...
 
#define Y_GUARD_METHOD2(CLASS_INSTANCE, ...)   EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_GUARD_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__))
 The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters. More...
 
#define Y_GUARD_FUNCTION2(...)   EXPAND( VA_SELECT(Y_GUARD_FUNCTION2_SELECT, __VA_ARGS__) )
 The macro creates a guard_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters. More...
 
#define Y_GUARD_METHOD_EVENT(...)   EXPAND( Y_GUARD_METHOD2( this, __VA_ARGS__ ) )
 The macro creates a constraint_function for the specified method(s). \ The macro is variadic and can take up to 10 method pointers as parameters. More...
 
#define Y_GUARD_FUNCTION_EVENT(...)   EXPAND( VA_SELECT( Y_GUARD_FUNCTION_EVENT_SELECT, __VA_ARGS__ ) )
 The macro creates a constraint_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters. More...
 

Macro Definition Documentation

◆ VA_SELECT_WITH_CLASS_INSTANCE

#define VA_SELECT_WITH_CLASS_INSTANCE (   NAME,
  CLASS_INSTANCE,
  ... 
)    EXPAND( SELECT( NAME, VA_SIZE(__VA_ARGS__) )(CLASS_INSTANCE, __VA_ARGS__) )

◆ Y_BEHAVIOR_ACTION

#define Y_BEHAVIOR_ACTION (   _action)    sxy::behavior_function( [this]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } )

Macro for using a method as a behavior.

◆ Y_BEHAVIOR_FREE_ACTION

#define Y_BEHAVIOR_FREE_ACTION (   _action)    sxy::behavior_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } )

Macro for using a free function as a behavior.

◆ Y_BEHAVIOR_FUNCTION2

#define Y_BEHAVIOR_FUNCTION2 (   ...)    EXPAND( VA_SELECT(Y_BEHAVIOR_FUNCTION2_SELECT, __VA_ARGS__) )

The macro creates a behavior_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters.

◆ Y_BEHAVIOR_FUNCTION_EVENT

#define Y_BEHAVIOR_FUNCTION_EVENT (   ...)    EXPAND( Y_BEHAVIOR_FUNCTION2( __VA_ARGS__ ) )

The macro creates a behavior_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters.

◆ Y_BEHAVIOR_METHOD2

#define Y_BEHAVIOR_METHOD2 (   CLASS_INSTANCE,
  ... 
)    EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_BEHAVIOR_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__))

The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters.

◆ Y_BEHAVIOR_METHOD_EVENT

#define Y_BEHAVIOR_METHOD_EVENT (   ...)    EXPAND( Y_BEHAVIOR_METHOD2( this, __VA_ARGS__ ) )

The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters.

◆ Y_GUARD_ACTION

#define Y_GUARD_ACTION (   _action)    sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } )

Macro for using a method as a guard.

◆ Y_GUARD_FREE_ACTION

#define Y_GUARD_FREE_ACTION (   _action)    sxy::constraint_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } )

Macro for using a free function as a guard.

◆ Y_GUARD_FUNCTION2

#define Y_GUARD_FUNCTION2 (   ...)    EXPAND( VA_SELECT(Y_GUARD_FUNCTION2_SELECT, __VA_ARGS__) )

The macro creates a guard_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters.

◆ Y_GUARD_FUNCTION_EVENT

#define Y_GUARD_FUNCTION_EVENT (   ...)    EXPAND( VA_SELECT( Y_GUARD_FUNCTION_EVENT_SELECT, __VA_ARGS__ ) )

The macro creates a constraint_function for the specified function(s). \ The macro is variadic and can take up to 10 function pointers as parameters.

◆ Y_GUARD_METHOD2

#define Y_GUARD_METHOD2 (   CLASS_INSTANCE,
  ... 
)    EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_GUARD_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__))

The macro creates a behavior_function for the specified method(s). \ The macro is variadic and can take up to 10 class methods pointers as parameters.

◆ Y_GUARD_METHOD_EVENT

#define Y_GUARD_METHOD_EVENT (   ...)    EXPAND( Y_GUARD_METHOD2( this, __VA_ARGS__ ) )

The macro creates a constraint_function for the specified method(s). \ The macro is variadic and can take up to 10 method pointers as parameters.