Boost logo

Boost Users :

From: Marc Mutz (marc_at_[hidden])
Date: 2006-04-03 08:00:26


Hi,

SunPro (tested: v11, with current patches), needs the attached patch to compile
the following code:

--code--
using boost::format;
using boost::str;

void foo( const std::string & );

format fmt( "host=%1%,port=%2%" );
const std::string host = ...;
const unsigned short port = ...;
foo( str( fmt % host % port ) );
--/code--

--- /opt/boost/cc/1.33.1/include/boost-1_33_1/boost/format/alt_sstream_impl.hpp~ Sun Feb 27 03:06:57 2005
+++ /opt/boost/cc/1.33.1/include/boost-1_33_1/boost/format/alt_sstream_impl.hpp Mon Apr 24 18:07:09 2006
@@ -245,7 +245,7 @@
                     add_size /= 2;
                 if(0 < add_size) {
                     new_size += add_size;
- newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
+ newptr = static_cast<Ch*>(alloc_.allocate(new_size, is_allocated_? oldptr : 0));
                 }

                 if(0 < prev_size)

Thanks,
Marc

PS: Regarding the API: I don't much like the fact that format::operator%
changes the format instance. I would have liked to write "static const format"
in the code snippet above. Feels more natural ("do as the ints do"). I see where
the design comes from (speed optimization), but speed shouldn't dictate design.
Expression templates could be used to speed up the process.

-- 
Marc Mutz -- marc_at_[hidden], mutz_at_[hidden]
Klarälvdalens Datakonsult AB, Platform-independent software solutions



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