Mercurial > octave-dspies
view examples/mystring.c @ 19008:80ca3b05d77c draft
New "dispatch" selects template argument from octave-value (Bug #42424, 42425)
* find.cc (Ffind): This method now calls dispatch() rather than attempting to
handle all matrix types on its own
(findTemplated): Changed to a functor to be passed as a template template
argument to dispatch()
(findInfo): A struct that holds the other arguments to find
(n_to_find, direction, nargout)
Added unit tests for bugs 42424 and 42425
* (new file) dispatch.h (dispatch): A method for dispatching function calls to
the right templated value based on an octave_value argument.
author | David Spies <dnspies@gmail.com> |
---|---|
date | Sat, 21 Jun 2014 13:13:05 -0600 |
parents | 224e76250443 |
children |
line wrap: on
line source
#include <string.h> #include "mex.h" void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { mwSize m, n; mwIndex i, j; mxChar *pi, *po; if (nrhs != 1 || ! mxIsChar (prhs[0]) || mxGetNumberOfDimensions (prhs[0]) > 2) mexErrMsgTxt ("ARG1 must be a char matrix"); m = mxGetM (prhs[0]); n = mxGetN (prhs[0]); pi = mxGetChars (prhs[0]); plhs[0] = mxCreateNumericMatrix (m, n, mxCHAR_CLASS, mxREAL); po = mxGetChars (plhs[0]); for (j = 0; j < n; j++) for (i = 0; i < m; i++) po[j*m + m - 1 - i] = pi[j*m + i]; }