[libavg-devel] Dynamic Node Creation Enhancements
Ulrich von Zadow
uzadow at libavg.de
Fri Feb 15 12:50:17 CET 2008
Ulrich von Zadow wrote:
> Nick Hebner wrote:
>> On Wed, Feb 13, 2008 at 1:27 PM, Ulrich von Zadow <uzadow at libavg.de> wrote:
>>
>>> Hi,
>>>
>>> I need a bit of time to look this over, because I still think it should
>>> work. Member variables of base classes never move in derived classes
>>> (even with multiple inheritance), as long as you always use a pointer to
>>> the base class. For simple single inheritance, the pointer to an object
>>> shouldn't change either in a cast from base to derived class and back.
>>> offsetof(), while technicaly undefined, _should_ work for these objects
>>> in all sane implementations of C++ (For discussions of this, see
>>> http://gcc.gnu.org/ml/gcc/2003-11/msg00279.html and
>>> http://carcino.gen.nz/tech/cpp/multiple_inheritance_this.php).
>> Hmm, ok you clearly know much more about it than I do, so I'll leave it to
>> you.
>
> Not that much more - I just used google ;-). The second link explains
> object layout in memory very well.
>
>>> It might take a moment for me to get around to it, though, so getting
>>> the first patch into svn would be great.
>> Great. Would you like me to submit another patch to the list, or just commit
>> it?
>
> Just commit it :-).
Um - I see you've done that, and now I get:
[...]
g++ -DHAVE_CONFIG_H -I. -I. -I../../src -I.. -I/usr/include/libxml2
-I/Users/uzadow/libavg/include/freetype2 -I/Users/uzadow/libavg/include
-I/Users/uzadow/libavg/include/pango-1.0 -I/Users/uzadow/libavg/include
-I/Users/uzadow/libavg/include/freetype2
-I/Users/uzadow/libavg/include/glib-2.0
-I/Users/uzadow/libavg/lib/glib-2.0/include
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-I/Users/uzadow/libavg/include -I/Users/uzadow/libavg/include/ffmpeg
-I/Users/uzadow/libavg/include
-I/Users/uzadow/libavg/include/GraphicsMagick
-I/Users/uzadow/libavg/include -O3 -g -Wall -pipe -MT CameraNode.lo -MD
-MP -MF .deps/CameraNode.Tpo -c CameraNode.cpp -fno-common -DPIC -o
.libs/CameraNode.o
Words.cpp: In static member function 'static avg::NodeDefinition
avg::Words::getNodeDefinition()':
Words.cpp:89: error: 'class avg::ChildMap' has no member named 'at'
Words.cpp:105: error: 'class avg::ChildMap' has no member named 'at'
[...]
This is Mac OS X Leopard, gcc 4.0.1. As far as I can see by quickly
searching the web, std::map::at() is not part of the standard, so you
should probably use std::map::find()->second. On which plattform does
this compile?
Cheers,
Uli
--
Ulrich von Zadow | +49-172-7872715
Jabber: cocacoder at jabber.berlin.ccc.de
Skype: uzadow
More information about the libavg-devel
mailing list