pyplusplus.function_transformers.templates.virtual_mem_fun

Package pyplusplus :: Package function_transformers :: Module templates :: Class virtual_mem_fun |

# ClassType virtual_mem_fun

source code

Class Variables
| override = `Template(os.linesep.join(['virtual $return_type $fu`...``
| default = `Template(os.linesep.join(['static $return_type $uniq`...``

Class Variable Details

  ### override Value:
      Template(os.linesep.join(['virtual $return_type $function_name( $arg_d
      eclarations )$constness $throw{', '    namespace bpl = boost::python;'
      , '    if( bpl::override $py_function_var = this->get_override( "$func
      tion_alias" ) ){', '        $declare_py_variables', '        $py_pre_c
      all', '        ${save_py_result}bpl::call<bpl::object>( $py_function_v
      ar.ptr()$py_arg_expressions );', '        $py_post_call', '        $py
      _return', '    }', '    else{', '        $cpp_return$wrapped_class::$f
      unction_name( $cpp_arg_expressions );', '    }', '}']))

  ### default Value:
      Template(os.linesep.join(['static $return_type $unique_function_name(
      $arg_declarations ){', '    $declare_variables', '    $pre_call', '
       if( dynamic_cast< $wrapper_class $wrapped_inst_constness* >( boost::a
      ddressof( $wrapped_inst ) ) ){', '        $save_result$wrapped_inst.$w
      rapped_class::$function_name($arg_expressions);', '    }', '    else{'
      , '        $save_result$wrapped_inst.$function_name($arg_expressions);
      ', '    }', '    $post_call', '    $return', '}']))