[aspectc-user] gcc 2.96 vs. ResultBuffer
    Timothy Stack 
    stack at cs.utah.edu
       
    Fri Mar 16 05:04:37 CET 2007
    
    
  
On Mar 13, 2007, at 6:41 PM, Olaf Spinczyk wrote:
> Hi Timothy,
Hi,
> could you try replace "&result" with "&result._data" in the generated
> code and see if it compiles and works as expected? I don't have a g++
> 2.96 to test this at the moment, because I am currently attending the
> AOSD conference.
I made the change in the generated code and it seemed to work.  I had
to remove 'AnyResultBuffer' and turn the operator new and delete
functions into templates to get it to work:
   template <typename T> struct ResultBuffer {
     char _data[sizeof (T)];
     ~ResultBuffer () { ((T*)_data)->T::~T(); }
     operator T& () const { return *(T*)_data; }
   };
   template <typename T>
   inline void * operator new (size_t, AC::ResultBuffer<T> *p)  
{ return p->_data; }
   template <typename T>
   inline void operator delete (void *, AC::ResultBuffer<T> *) { } //  
for VC++
I don't know if this would affect other parts of the code or other  
compilers
though...
> Best regards,
>
> Olaf
thanks,
tim
    
    
More information about the aspectc-user
mailing list