Boost C++ Libraries: Ticket #90: boost::format bug https://svn.boost.org/trac10/ticket/90 <pre class="wiki">1. Function boost::io::detail::maybe_throw_exception is defined in parsing.hpp so link error happended when you include file boost/format.hpp in two or more .cpp modules (inline specifier missed? :). 2. Why class basic_format has members operator&lt;&lt; ( std::basic_ostream&lt;Ch, Tr&gt;&amp; , const basic_format&amp; ); and string_t str() const; instead of just operator string_t() const; ? Every time you just want to build string and pass it to somewhere you need to write statement something like that: ( boost::format( "%1%..." % ... ) ).str() I believe it looks ugly... Having operator string_t() const; also eliminate operator&lt;&lt; ( std::basic_ostream&lt;Ch, Tr&gt;&amp; , const basic_format&amp; ); if I not mistaken. Best Regards, Misha </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/90 Trac 1.4.3 samuel_k Wed, 28 May 2003 11:38:48 GMT status changed https://svn.boost.org/trac10/ticket/90#comment:1 https://svn.boost.org/trac10/ticket/90#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> </ul> <pre class="wiki">Logged In: YES user_id=545049 1. the fix was commited on 2002/06/17 2. it is a design choice to not provide implicit conversion, to prevent pitfalls. e.g. : string s1, s2; format(fstr) % s1+s2 ; where the user didnt think about % preceding +, and just wants : format(fstr) % (s1+s2) ; with operator string(), it is legal, interpreted as : string(format(fstr)% s1) + s2; Without, the compilation aborts, the user realises his mistake and all his well. </pre> Ticket