
On Aug 15, 2007, at 3:19 AM, manphiz wrote:
Phil Endecott wrote:
This stuff will all be much easier once we have variadic templates, i.e. you will be able to have a type-safe sprintf in C++. You can now get a version of gcc that supports them, and they should be in C++0x. So unless you have some very urgent reason to change immediately, I suggest that you wait for a bit.
(I imagine that this means that the operator%-style Boost.Format will not progress towards the standard library, but I am not in any position to comment on that.)
Maybe the operator%-style can be obsolete (and I don't like it either) in favor of variadic templates magic, but plain sprintf still cannot be directly used to deal with std::string, is it?
Why not? Variadic templates make it possible to implement a sprintf- like interface that supports all data types (strings, user-defined types, etc.) and checks the format string against the actual argument types to provide better type safety. They give us a chance to revisit the Format interface to determine whether we can do better with new features; that might mean bringing back the old-but-familiar (s) printf interface with added functionality. - Doug