[gme-users] getting a BON object from an implementation object
zolmol at isis.vanderbilt.edu
Fri May 12 10:37:38 CDT 2006
Did you try this:
void g( BON::FCO& par)
void f( BON::FCOImpl* impl)
g( BON::FCO( impl));
I saw that there is a constructor like: FCO( FCOImpl *).
From: gme-users-bounces at list.isis.vanderbilt.edu
[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of Matthew
Sent: Thursday, May 11, 2006 5:55 PM
Subject: [gme-users] getting a BON object from an implementation object
In a BON 2 interpreter, I have written a stand-along function that takes
as a parameter a BON::FCO:
void writeNEDFCOPropertyAssn(const BON::FCO &fco, const
std::string &indent, std::ostringstream &out);
There are many places in the interpreter when I can call it and pass it
an actual BON::FCO:
for( ; npos != nodes.end(); ++npos)
writeNEDFCOPropertyAssn(node, "\t\t\t\t", nodeParams)
However, inside the definition of a method of one of my -Impl classes, I
need to call this stand-along function and basically pass it the "this"
pointer. Except "this" is an Impl object and not a BON object:
writeNEDFCOPropertyAssn(this, "\t\t", nodeParams);
Except...this is not a BON::FCO. It's a BON::FCOImpl. But the function
will do the exact same thing anyway, so I don't want to have to write it
twice just because in one case I'm passing in a wrapper and in another
case I'm passing in the implementation object.
How do I get a wrapped version of an Impl object on demand without
messing up the reference counting mechanism?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gme-users