Boost logo

Boost Users :

From: Allen Cronce (acronce_at_[hidden])
Date: 2005-09-15 14:13:15


Hi all,

I just updated from boost 1.32.0 to 1.33.0 for a CodeWarrior MSL/carbon
project under Mac OS X. There were several build errors stemming from
the fact that "check" is already defined in /usr/include/AssertMacros.h.
For now I dealt with this my modifying my copy of the boost libraries to
substitute _check for check. This is of course an ugly solution, but I
wanted to move forward.

Unfortunately now I'm seeing crashes with code that worked fine with
1.32.0. Here's some test code that demonstrates the crash:

    _tprintf(_T("\nTest a vector of boost shared_ptr's:\n"));
    typedef boost::shared_ptr<std::string> SharedPtrString;
    typedef vector<SharedPtrString> StringContainer;
    typedef vector<SharedPtrString>::iterator StringContainerIterator;

    {
    SharedPtrString sharedPtrString1(new std::string("Hi there!"));
    SharedPtrString sharedPtrString2(new std::string("Hi there!"));
    
    _tprintf( _T(" sharedPtrString1->c_str() = \"%s\"\n"),
sharedPtrString1->c_str() );
    _tprintf( _T(" sharedPtrString2->c_str() = \"%s\"\n"),
sharedPtrString2->c_str() );
    }
    
    // We never get here because of an access error

Basically when the SharedPtrString goes out of scope, I get an access
error deep in the allocation code. Does anyone have suggestions for
resolving these issues? Note that I could go back to 1.32.0, but I want
to use the new Pointer Container Library.

Best regards,

-- 
Allen Cronce

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net