|
yasmine
|
Go to the documentation of this file. 12 #ifndef ASSEMBLY_CPP11_D1BFD81D_D2FD_4AD5_A426_CE822C4C6C9F 13 #define ASSEMBLY_CPP11_D1BFD81D_D2FD_4AD5_A426_CE822C4C6C9F 15 #ifndef SX_CPP03_BOOST // C++11 only 18 #include <type_traits> 21 #include "essentials/macro_helpers.hpp" 25 #define Y_BEHAVIOR_ACTION( _action ) \ 26 sxy::behavior_function( [this]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } ) 29 #define Y_BEHAVIOR_FREE_ACTION( _action ) \ 30 sxy::behavior_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER( _event ); SX_UNUSED_PARAMETER( _event_collector ); _action } ) 33 #define Y_GUARD_ACTION( _action ) \ 34 sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } ) 37 #define Y_GUARD_FREE_ACTION( _action ) \ 38 sxy::constraint_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER( _event_collector ); _action } ) 46 #define Y_BEHAVIOR_METHOD_EVENT(...) EXPAND( Y_BEHAVIOR_METHOD2( this, __VA_ARGS__ ) ) 50 #define Y_BEHAVIOR_FUNCTION_EVENT( ... ) EXPAND( Y_BEHAVIOR_FUNCTION2( __VA_ARGS__ ) ) 53 #define VA_SELECT_WITH_CLASS_INSTANCE( NAME, CLASS_INSTANCE, ... ) EXPAND( SELECT( NAME, VA_SIZE(__VA_ARGS__) )(CLASS_INSTANCE, __VA_ARGS__) ) 57 #define Y_BEHAVIOR_METHOD2(CLASS_INSTANCE, ...) EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_BEHAVIOR_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__)) 61 #define Y_BEHAVIOR_FUNCTION2(...) EXPAND( VA_SELECT(Y_BEHAVIOR_FUNCTION2_SELECT, __VA_ARGS__) ) 65 #define Y_GUARD_METHOD2(CLASS_INSTANCE, ...) EXPAND( VA_SELECT_WITH_CLASS_INSTANCE(Y_GUARD_METHOD2_SELECT, CLASS_INSTANCE, __VA_ARGS__)) 69 #define Y_GUARD_FUNCTION2(...) EXPAND( VA_SELECT(Y_GUARD_FUNCTION2_SELECT, __VA_ARGS__) ) 74 #define Y_GUARD_METHOD_EVENT(...) EXPAND( Y_GUARD_METHOD2( this, __VA_ARGS__ ) ) 78 #define Y_GUARD_FUNCTION_EVENT( ... ) EXPAND( VA_SELECT( Y_GUARD_FUNCTION_EVENT_SELECT, __VA_ARGS__ ) ) 84 #if defined(Y_USE_DEPRECATED) && (Y_USE_DEPRECATED <= 1) 87 #define Y_BEHAVIOR_METHOD( ... ) EXPAND( VA_SELECT( Y_BEHAVIOR_METHOD_SELECT, __VA_ARGS__ ) ) 90 #define Y_BEHAVIOR_METHOD_NO_EVENT( ... ) EXPAND( VA_SELECT( Y_BEHAVIOR_METHOD_NO_EVENT_SELECT, __VA_ARGS__ ) ) 93 #define Y_GUARD_METHOD( ... ) EXPAND( VA_SELECT( Y_GUARD_METHOD_SELECT, __VA_ARGS__ ) ) 96 #define Y_GUARD_METHOD_NO_EVENT( ... ) EXPAND( VA_SELECT( Y_GUARD_METHOD_NO_EVENT_SELECT, __VA_ARGS__ ) ) 100 #define Y_BEHAVIOR_METHOD_SELECT_1( _method_name ) \ 101 sxy::behavior_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event_collector); this->_method_name( _event ); } ) 105 #define Y_BEHAVIOR_METHOD_SELECT_2( _class_name, _method_name ) \ 106 sxy::behavior_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event_collector); this->_method_name( _event ); } ) 110 #define Y_BEHAVIOR_METHOD_NO_EVENT_SELECT_1( _method_name ) \ 111 sxy::behavior_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); this->_method_name(); } ) 115 #define Y_BEHAVIOR_METHOD_NO_EVENT_SELECT_2( _class_name, _method_name ) \ 116 sxy::behavior_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); this->_method_name(); } ) 120 #define Y_GUARD_METHOD_SELECT_1( _method_name ) \ 121 sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event_collector); return( this->_method_name( _event ) ); } ) 125 #define Y_GUARD_METHOD_SELECT_2( _class_name, _method_name ) \ 126 sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event_collector); return( this->_method_name( _event ) ); } ) 130 #define Y_GUARD_METHOD_NO_EVENT_SELECT_1( _method_name ) \ 131 sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); return( this->_method_name() ); } ) 135 #define Y_GUARD_METHOD_NO_EVENT_SELECT_2( _class_name, _method_name ) \ 136 sxy::constraint_function( [ this ]( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); return( this->_method_name() ); } ) 140 #define Y_GUARD_FUNCTION( _function_name ) \ 141 sxy::constraint_function( []( const sxy::event& _event, sxy::event_collector& _event_collector )->bool { SX_UNUSED_PARAMETER(_event_collector); return( _function_name( _event ) ); } ) 145 #define Y_GUARD_FUNCTION_NO_EVENT( _function_name ) \ 146 sxy::constraint_function( []( const sxy::event& _event, sxy::event_collector& _event_collector )->bool { SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); return( _function_name() ); } ) 150 #define Y_BEHAVIOR_FUNCTION( _function_name ) \ 151 sxy::behavior_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event_collector); _function_name( _event ); } ) 155 #define Y_BEHAVIOR_FUNCTION_NO_EVENT( _function_name ) \ 156 sxy::behavior_function( []( const sxy::event& _event, sxy::event_collector& _event_collector ){ SX_UNUSED_PARAMETER(_event); SX_UNUSED_PARAMETER(_event_collector); _function_name(); } )\ 159 #endif // defined(Y_USE_DEPRECATED) && (Y_USE_DEPRECATED <= 1) 162 #endif // SX_CPP03_BOOST 165 #endif // include guard