From octave-maintainers-request at bevo dot che dot wisc dot edu Wed Dec 18 13:38:51 2002 Subject: Re: Creating a standalone executable From: JD Cole To: "John W. Eaton" CC: Paul Kienzle , octave-maintainers@bevo.che.wisc.edu Date: Wed, 18 Dec 2002 11:50:41 -0800 Yes, that is why I was curious about the history of install_ops/_types. Just to clear something up, when I'm performing octave_value addition, as in the code snippet below, this uses liboctinterp operators, not liboctave operators? The way I "understand" now I thought that ov operators were all defined in liboctave, so in the following code I shouldn't need functionality from liboctinterp, right? (I admit I'm a bit confused at this point.) JD | source code (a.cc) > | ========= > | #include > | #include > | #include > | > | using namespace std; > | > | int main(int argc, char *argv[]) > | { > | install_types (); > | install_ops (); > | octave_value a(10.0),b(20.0),c; > | > | c = a + b; > | > | c.print(cout); > | > | return (0); > | } John W. Eaton wrote: >On 18-Dec-2002, JD Cole wrote: > >| This may be a C++ ignorant question, but, what was the motivation behind >| installing operators/types "manually" rather than having them >| instantiated in the type class? > >Mixed-type operations, I think. > >But I think it would still be possible to have them installed >automatically, using some static object -- the constructor of the >object would call the appropriate function for installing the >operators defined in the file where the static object appears. The >constructor for the static object would be called automatically when >the object is loaded. That only leaves the question of ensuring that >everything is initialized in the proper order (probably not too hard >to do, but would require some care). But as Paul points out, maybe >you don't want to initialize all of this every time you use >liboctinterp? > >jwe > > >