Mercurial > octave-nkf
view examples/structdemo.cc @ 14136:20cb178716ee
Make nargin and nargout behave more like Matlab's (Bug #32700)
* ov-usr-fcn.cc: Include "ov-fcn-handle.h". (Fnargout, Fnargin)
nargout can be given a function handle as well as a string. Allow
nargout(fcn) works in the top level. Make inline functions always
return 1. Make anonymous functions always return -1. Make functions
with varargout optionally preceded by named outputs return
-(length_output_list_including_the_varargout).
author | Iain Murray <iain@iainmurray.net> |
---|---|
date | Mon, 02 Jan 2012 12:49:52 -0500 |
parents | db1f49eaba6b |
children | be41c30bcb44 |
line wrap: on
line source
#include <octave/oct.h> #include <octave/ov-struct.h> DEFUN_DLD (structdemo, args, , "Struct demo.") { int nargin = args.length (); octave_value retval; if (args.length () == 2) { octave_scalar_map arg0 = args(0).scalar_map_value (); if (! error_state) { std::string arg1 = args(1).string_value (); if (! error_state) { octave_value tmp = arg0.contents (arg1); if (tmp.is_defined ()) { octave_scalar_map st; st.assign ("selected", tmp); retval = octave_value (st); } else error ("sruct does not contain field named '%s'\n", arg1.c_str ()); } else error ("expecting character string as second argument"); } else error ("expecting struct as first argument"); } else print_usage (); return retval; }