Boost logo

Boost :

From: Samuel Krempp (krempp_at_[hidden])
Date: 2002-01-21 13:37:33


On Mon, 2002-01-21 at 17:17, Jeremy Siek wrote:
> Hi Sam,
>
> Just a reminder: you don't need to make changes to your library until
> *after* the review period. Making changes based on each reviewer's
> comments, as they come in, leads to confusion as we've seen.

On the other hand, some points are raised almost every time, while the
fix is already planned.

Also, the MSVC6 compatibily problems prevents some potential reviewers
from compiling the code, so I'll upload an updated archive once I get
this point fixed

In the meantime I'll just send notices in this new thread about all the
fixes that are already planned (or even implemented on my local files),
and try to write summaries of the 'open issues', so reviewers don't
waste their time to repeat what has been said.

*** Planned fixes : ***

- better documentation.

- tabs replaced by spaces in the source files

- size_t used, should be std::size_t
(same for std::isdigit)

- calls to s.insert(0, ..) are ambiguous, fix is
either s.insert(s.begin(), ..)
or s.insert( string::size_type(0), ..)

- "%{1}11" now possible.

- format::exceptions( .. ) added to choose what errors will throw
exceptions

- samples programs were using assert to show the results inside the
code. this is better achieved with comments // prints "that" ..

- non homogneous coding style
mixing Capitalized names and underscores, (parse_Pdirective..)
and sometimes appending '_' to data members, sometimes not.
=> stick to the all_lower_case_with_underscores naming scheme,
   and name all data members in all classes with a '_' suffix.

- MSVC6 comptibilty (based on rogeef's suggestions)

This includes :
- renaming .cc files to .cpp, and *.ihh to *_implementation.hpp
- cutting the code into smaller headers,
so that the primary header would merely do :
#include "boost/format/format_fwd.hpp"
#include "boost/format/format_internals.hpp"
#include "boost/format/format_class.hpp"
#include "boost/format/format_exceptions.hpp"
#include "boost/format/format_implementation.hpp"
#include "boost/format/format_funcs.hpp"
- moving many function template definitions in their declarations
- and more :-)

*** Open Issues : ***

- operator%, or (), or [].

- Provide or not a function-call interface
( format("%1 %2", x, y) )
see http://groups.yahoo.com/group/boost/message/23407
and Tom Becker's messages

- how to pass manipulators.
use a dedicate operator, or a function and wrapper class ?
at least, I plan renaming the 'glue' function to 'manip'.

- document the undocumented advanced functions (the 'bind' family,
etc..) or drop them if it is found useless.

- const T& / T& versions of operator% are causing overload ambiguity
with MSVC6.
see rogeef's message http://groups.yahoo.com/group/boost/message/23405

Drop the non-const, only for MSVC, or for any compiler ?
The case of manipulators is again delicate, since functions of type
typedef std::ios_base&(manip)(std::ios_base&);
can not be passed by const-reference..

-- 
Samuel

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk