From: Michael B. <mba...@cr...> - 2011-04-20 17:14:46
|
On 04/14/2011 12:01 AM, Gerrit Voß wrote: > > Hi, > > On Tue, 2011-04-12 at 15:19 -0500, Carsten Neumann wrote: >> Hello Michael, >> >> On 04/11/2011 12:03 PM, Michael Babcock wrote: > >>> The OpenSG headers, at least, also almost compile with g++-4.6 >>> -std=c++0x, except for one error: >>> >>> /mnt/hdpsbin/dev/OpenSG-2.0/include/OpenSG/OSGFieldContainer.inl: In >>> function 'ContainerPtr OSG::convertToCurrentAspect(ContainerPtr) [with >>> ContainerPtr = OSG::MemoryObject*]': >>> /mnt/hdpsbin/dev/OpenSG-2.0/include/OpenSG/OSGMemObjPointerMFieldCommon.inl:504:66: >>> instantiated from here >>> /mnt/hdpsbin/dev/OpenSG-2.0/include/OpenSG/OSGFieldContainer.inl:528:58: >>> error: 'class OSG::MemoryObject' has no member named 'getAspectPtr' >>> >>> Where it seems to be passing a MemoryObject* where a FieldContainer* is >>> expected. >> >> this one, should also not be specific to gcc 4.6 or c++0x mode, but I'm >> not sure what the correct fix is. MemoryObjects don't have the multi >> aspect copies FieldContainers have, so there is no meaningful way to get >> the aspect local copy of one. >> I'm guessing the MemObj fields would share the MemoryObject across >> aspects. Gerrit, what's the intended semantics here? > > I'll look into it. > > kind regards > gerrit FYI, a newer version of g++-4.6 (Debian 4.6.0-4, SVN 20110419 r172584) no longer complains about this in -std=c++0x mode. So perhaps it was a bug in gcc that was fixed. I'm not sure why it's not an issue, perhaps that code is not actually instantiated, or is instantiated in a non-obvious manner such that the compiler knows the MemoryObject is always a FieldContainer. Sorry about the false alarm. |