Hi All,

 

I have come across a bug associated the following code,  it work fine in VS2008 release mode and crash in debug mode, I did some research found it should be a bug in the microsoft implementation of ostringstream, Is anybody know how to fix this or alternative way? Any ideas would be appreciated.

 

BTW: I must use std::ostringstream because actually lot of dependencies dll was developed with std::ostringstream.str() return. I don’t want change the dependencies project it wastes too much.

 

std::string result( "" );

size_t length = source.size();

std::ostringstream offset;

long offsetsToSource = 12135L;

offset << offsetsToSource;

 

std::string nsource = offset.str();

result.reserve( nsource.length() * 1.6 );

std::for_each( nsource.begin(), nsource.end(),ToXML( result, "\"&<>" ) );

 

 

 

msvcp90d.dll!std::_Container_base_secure::_Orphan_all()  Line 223 + 0x5 bytes              C++

msvcp90d.dll!std::_Container_base_secure::~_Container_base_secure()  Line 115         C++

msvcp90d.dll!std::_String_base::~_String_base()  + 0x11 bytes  C++

msvcp90d.dll!std::_String_val<unsigned short,std::allocator<unsigned short> >::~_String_val<unsigned short,std::allocator<unsigned short> >()  + 0x11 bytes    C++

 msvcp90d.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >()  Line 917 + 0xf bytes            C++

getMetaData.dll!getQMAttributes(Av::Generic::ContainerIF * pcFile=0x026a0924, Av::Generic::MasterMobIF * pMasterMob=0x0278d234, Av::Generic::TapeMobIF * pTapeMob=0x0279275c, MobInfo & mobInfo={...})  Line 748 + 0x73 bytes     C++