id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 10949,"crash in boost.format, vs2013, /RTCc, x86",david x callaway ,Samuel Krempp,"win 7/64, boost-1.57.0, compiled to 32 bit note: this bug has been here since at least boost-1.48. code: {{{ // compile cl -I/path/to/boost -EHsc -Od -RTCc t.cpp #include ""boost/format.hpp"" #include int main(int argc, const char** argv) { const int i(200); std::string s(boost::str(boost::format(""x:%1%,y]"")%i)); return 0; } }}} what happens: runtime check fails at feed_args.cpp:200 (cast of an __int64 to unsigned int). proposed patch: {{{ diff -Naur format.orig/internals.hpp format/internals.hpp --- format.orig/internals.hpp Mon May 12 11:06:18 2014 +++ format/internals.hpp Wed Jan 21 05:19:28 2015 @@ -76,7 +76,7 @@ typedef ::std::basic_string string_type; format_item(Ch fill) :argN_(argN_no_posit), fmtstate_(fill), - truncate_(max_streamsize()), pad_scheme_(0) {} + truncate_(static_cast(-1)), pad_scheme_(0) {} void reset(Ch fill); void compute_states(); // sets states according to truncate and pad_scheme. @@ -164,7 +164,7 @@ template void format_item:: reset (Ch fill) { - argN_=argN_no_posit; truncate_ = max_streamsize(); pad_scheme_ =0; + argN_=argN_no_posit; truncate_ = static_cast(-1); pad_scheme_ =0; res_.resize(0); appendix_.resize(0); fmtstate_.reset(fill); } }}}",Bugs,closed,To Be Determined,format,Boost 1.57.0,Problem,duplicate,,