Next: Variable-length return lists, Previous: Unwind-protect, Up: Octave Features
Octave has a real mechanism for handling functions that take an unspecified number of arguments, so it is no longer necessary to place an upper bound on the number of optional arguments that a function can accept.
Here is an example of a function that uses the new syntax to print a header followed by an unspecified number of values:
function foo (heading, ...)
disp (heading);
va_start ();
while (--nargin)
disp (va_arg ());
endwhile
endfunction
Calling va_start() positions an internal pointer to the first
unnamed argument and allows you to cycle through the arguments more than
once. It is not necessary to call va_start() if you do not plan
to cycle through the arguments more than once.
The function va_arg() returns the value of the next available
argument and moves the internal pointer to the next argument. It is an
error to call va_arg() when there are no more arguments
available.
It is also possible to use the keyword all_va_args to pass all unnamed arguments to another function.