id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 678,bug in boost:format,andreims,Douglas Gregor,"{{{ Hello, software configuration: boost 1.33.1 stlport 5.0 example: std::string ret = boost::str(boost::format(""%1%"") % std::string("""")); If you try to send as first argument the empty string to %-operator then you catch assertion failure in stl code: STLport-5.0.0\stlport\stl/debug/_string.h(308): STL error : Invalid argument to operation (see operation documentation) STLport-5.0.0\stlport\stl/debug/_string.h(308): STL assertion failure: (__s != 0) The null-pointer argument is passed from this: boost/boost/format/feed_args.hpp namespace boost { namespace io { namespace detail { template void mk_str( std::basic_string & res, const Ch * beg, typename std::basic_string::size_type size, std::streamsize w, const Ch fill_char, std::ios_base::fmtflags f, const Ch prefix_space, // 0 if no space-padding bool center) // applies centered/left/right padding to the string [beg, beg+size[ // Effects : the result is placed in res. { typedef typename std::basic_string::size_type size_type; res.resize(0); if(w<=0 || static_cast(w) <=size) { // no need to pad. res.reserve(size + !!prefix_space); if(prefix_space) res.append(1, prefix_space); res.append(beg, size); /// here ""beg"" is null } ... ////////////////////-------------------------- There is no assertion failure if you pass empty string as second argument, e.g. std::string ret = boost::str(boost::format(""%1% %2%"") % 2 % std::string("""")); Best regards, Andrei Selikhanovich }}}",Bugs,closed,,function,None,,None,,