2011/4/11 Maxime van Noppen
<maxime@altribe.org>
Hi,
I've got a question about the reuse of the boost::format object. Given
this minimal testcase:
-----------------------------------------------------------
#include <iostream>
#include <boost/format.hpp>
int main()
{
boost::format fmt("%|=12| %|=12| %|=12|\n");
// 1
std::cout
<< boost::str(fmt % "a" % "b" % "c")
<< boost::str(fmt % 1 % 2 % 3);
// 2
std::cout
<< fmt % "a" % "b" % "c"
<< fmt % 1 % 2 % 3;
}
-----------------------------------------------------------
Why is 1 working while 2 produces the runtime exception:
> terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::io::too_many_args> >'
> what(): boost::too_many_args: format-string referred to less arguments than were passed
?