Boost logo

Boost :

From: Daniel Wallin (dalwan01_at_[hidden])
Date: 2004-01-10 04:56:20

Dan W. wrote:
> Daniel Wallin wrote:
>>>>> derived make_temp_derived(){ return derived; }
>>>>> //scope..
>>>>> {
>>>>> base const & b = make_temp_derived();
>>>>> ...
>>>>> } <- the created temporary should last till here?
>>> With my compiler, it gets destroyed immediately, so I made an
>>> implementation that simply instantiates the variable.
>> Which compiler is that? IHMO, there's only so much you should do to
>> handle non-conforming compilers; if a compiler fails to handle a thing
>> as simple as this it should be thrown out the window.
> <snip>
> BTW, do you think the invariants code is okay now?

Well, I think it's kind of disturbing to use a macro to declare the
check_invariants() function. If the compiler can't manage the lifetime
of temporaries I think you should file a bug report, not work around it
with macros that propagate to user code.

Also, note that:

   template< typename T >
   class EEICHK
       friend class T;
       ^^^^^^^^^^^^^^^ illegal

There is no way to make a class template friend with it's template type.

Daniel Wallin

Boost list run by bdawes at, gregod at, cpdaniel at, john at