From help-octave-request at bevo dot che dot wisc dot edu Wed Jan 28 01:50:09 2004 Subject: Re: struct question From: "Dmitri A. Sergatskov" To: Paul Kienzle Cc: octave-help-list Date: Wed, 28 Jan 2004 00:48:37 -0700 Paul Kienzle wrote: > I've implemented a more complete version of struct for 2.1.52 > (it handles struct arrays). Let me know if you backport it to 2.1.50. Well, I decided to get in with times and installed octave-2.1.53. I was having hard time compiling the latest octave-forge with it. mex bombs: mex.cc: In member function `mxArray* mxArray::field(const std::string&, int) const': mex.cc:377: error: no match for 'operator[]' in '*this->mxArray::pmap[key]' mex.cc: In member function `void mxArray::field(const std::string&, int, mxArray*)': mex.cc:383: error: no match for 'operator[]' in '*this->mxArray::pmap[key]' mex.cc: In member function `mxArray* mex::make_value(int, int, const string_vector&)': mex.cc:551: error: call of overloaded `assign(std::string, octave_value_list&)' is ambiguous /usr/local/include/octave-2.1.53/octave/oct-map.h:123: error: candidates are: Octave_map& Octave_map::assign(const std::string&, const octave_value&) /usr/local/include/octave-2.1.53/octave/oct-map.h:125: error: Octave_map& Octave_map::assign(const std::string&, const Cell&) make: *** [mex.o] Error 1 I do not care about it that much so I NOINSTALLed it. Another problem is listen in main/miscellaneous: listen.cc: In function `void process_commands(int)': listen.cc:331: error: `bind_global_error_variable' undeclared (first use this function) listen.cc:331: error: (Each undeclared identifier is reported only once for each function it appears in.) listen.cc:347: error: `clear_global_error_variable' undeclared (first use this function) listen.cc: In function `octave_value_list Flisten(const octave_value_list&, int)': listen.cc:564: error: no matching function for call to `unwind_protect:: save_bool(int*, int&)' /usr/local/include/octave-2.1.53/octave/unwind-prot.h:103: error: candidates are: static void unwind_protect::save_bool(bool*, bool) I do not care for 'listen' either (at least now), but I do for some other stuff in misc. (dispatch e.g.). I commented out 'listen' from Makefile and after that it went through. (I would think that dispatched should be moved to some other directory from misc since it is essential for octave forge, while many other programs there are truly optional.) Struct works now: octave:1> s=struct('a',1,'b',2,'c',3) s = { a = 1 b = 2 c = 3 } I thought that struct array refer to things like s(2,1)=struct('a',1,'b',2,'c',3) which seems to be working as well now. Sincerely, Dmitri. ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------