On Aug 10, 2005, at 8:35 AM, Jeff Flinn wrote:

I'm not sure if this will help, but the following will limit the scope of 
'envelopeFailure'. This may be important if your code is reentrant through 
'envelopeController.injectEnvelope'. I'm not sure what 'shared_dynamic_cast' 
is above, but assume you meant 'dynamic_pointer_cast'?

    if( shared_ptr<EnvelopeFailure> envelopeFailure
        = dynamic_pointer_cast<EnvelopeFailure>(envelope) )
    {
        failedEnvelope( envelopeFailure->getFrom() );
    }

Thank you for the pointer - that is a good recommendation for me. I know there are several places where I can benefit from that layout. I upgraded my intel compiler to 8.1.025 and the problem has gone away.

Regarding the shared_dynamic_cast - that is what I have been using all along to perform the equivalent of a dynamic_cast on shared_ptr objects. I've never seen your version :-) I just did a google on it, and found out pretty quickly that I am using a deprecated cast function. I now have two things to thank you for!

Cheers,
tim