Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template< typename RET, typename FIRST = void, typename... ARGS >
- class Trampoline {
- ...
- };
- template< typename RET > class Trampoline< RET, void > {
- ...
- };
- template< typename RET, typename FIRST = void, typename... ARGS >
- Trampoline< RET, FIRST, ARGS... > makeTrampoline( RET ( *fn )( FIRST, ARGS... ), FIRST&& f, ARGS&&... args ) {
- return Trampoline< RET, FIRST, ARGS... >( fn, std::forward< FIRST >( f ), std::forward< ARGS >( args )... );
- }
- template< typename RET >
- Trampoline< RET > makeTrampoline< RET, void >( RET ( *fn )( ) ) {
- return Trampoline< RET >( fn );
- }
- static void print( ) {
- std::cout << "Hola, mundo !n";
- }
- int main( ) {
- auto trampoline = makeTrampoline( print );
- trampoline( );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement