|
Boost : |
From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2004-05-19 16:59:57
"Thomas Witt" <witt at acm dot org> wrote:
>
> The review of Douglas Gregor's Tribool library begins now and runs
> through Saturday, May 29.
>
I think the library should be accepted in Boost (problems with
MSVC family of compilers need to get solved first, though).
I had some comments to the library in the past. Few new isuues
and nitpicks are bellow.
/Pavel
____________________________________________
1. It may be useful to have header with forward
declarations tribool_fwd.hpp.
____________________________________________
2. Just thought: shouldn't tribool name be fetched
via "using" into boost namespace?
I see little chance for possible clashes.
____________________________________________
3. docs: the "Home" link on the top is broken.
Actually all of them.
Links to headers in reference are invalid.
____________________________________________
4. BOOST_TRIBOOL_THIRD_STATE.html should say
where (i.e. no namespace of its own) the new name get declared.
An example could be here.
The file name may be lowercased.
____________________________________________
5. Question: will tribool play well with
initialization library? (from Thorsten Ottosen)
____________________________________________
6. swap() member can be added.
____________________________________________
7. serialization support (probably non-intrusive
version) should be added.
Serialization of optional<> can be taken as example.
____________________________________________
8. why is tribool() initialized to false and not
indeterminate? Some explanation should be in docs.
____________________________________________
9. Silly question: is there way to use ternary operator
somehow to initialize tribool conditionally:
tribool t(x ? true : indeterminate); // something like that
____________________________________________
10 compiling test with Intel C++ 7.0 I get errors:
tribool_test.cpp
C:\Temp\tribool\libs\logic\test\tribool_test.cpp(18): error: more than one
operator "||" matches these operands:
function "boost::logic::operator||(boost::logic::tribool,
bool={bool})"
function "boost::logic::operator||(boost::logic::tribool,
boost::logic::indeterminate_keyword_t)"
operand types are: boost::logic::tribool || int
assert(!x);
I get similar errors for VC6.
OTOH BCB 6.4 compiles and runs OK.
____________________________________________
11. Naming nitpick: maybe function
default_indeterminate_name() would have
better name get_default_indeterminate_name().
____________________________________________
EOF
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk