Boost logo

Boost :

From: John Maddock (John_Maddock_at_[hidden])
Date: 2001-01-02 07:43:41


I've checked in a revised version of the type_traits library into
development/type_traits/. Note that this includes all dependencies not
just the changed files, in order to allow regression testing with the
new-style scripts (more on this later).

Main changes:

Template classes are now cv-insensitive.
The library has been completely reorganised, into a number of smaller
sub-headers in boost/type_traits/section_name.hpp. So you can include
<boost/type_traits.hpp> as before, or
<boost/type_traits/alignment_traits.hpp> if you just want the alignment_of
template for example.
Each template is defined in one place complete with all compiler-specific
workarounds, it should now be much easier to port the library to new
compilers (for example partial specialisation support can be disabled for
those specific cases that cause problems with a particular compiler).
Redundant templates have been removed.
Test programs and examples have been split up into smaller groups, again
this helps with testing/porting. Most of the examples now compile with VC6
(was algo_opt_examples.cpp).

Todo:
rewrite the docs.
write new section on how to use integral constant expressions portably.

Now onto the help wanted:

1) Can everyone using this library please check that the new version
doesn't break their code.

2) Steve, Howard, can you check that I haven't removed anything vital (this
applies to everyone really). There is a list of what's in the library and
where, in <boost/type_traits/fwd.hpp>.

3) Can those running the regression tests scripts (or any other
volunteers!), run the test script libs/type_traits/regress.cfg through the
new style regression test app when they have a chance - if possible I would
appreciate getting the full compiler/test program output, as well as the
html summary - as I would like to get as many problems as possible fixed at
this stage.

If it helps any I've been bootstrapping the regression test program though
a shell function:

export BOOST_ROOT='d:/boost/develop/boost'
function boost()
{
        if test $# -eq 1; then
                boost-regress c:/bin/site-compiler.cfg $1 $BOOST_ROOT |
2>&1 tee regression.out.txt
        elif test $# -eq 2; then
                boost-regress c:/bin/site-compiler.cfg $1 $BOOST_ROOT $2 |
2>&1 tee regression.out.txt
        elif test $# -eq 3; then
                boost-regress c:/bin/site-compiler.cfg $1 $BOOST_ROOT $2 $3
| 2>&1 tee regression.out.txt
        else
                boost-regress c:/bin/site-compiler.cfg
$BOOST_ROOT/libs/regression.cfg $BOOST_ROOT | 2>&1 tee regression.out.txt
        fi
}

which simplifies the syntax, and produces a text file log of all output as
well as the summary.

Thanks!

- John.


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