
----- Original Message ----- From: "Pavel Vozenilek" <pavel_vozenilek@hotmail.com>
1. It may be useful to have header with forward declarations tribool_fwd.hpp.
Is tribool big enough that it matters? I'm not opposed to having a forward header, but it seems unnecessary.
____________________________________________ 2. Just thought: shouldn't tribool name be fetched via "using" into boost namespace?
I see little chance for possible clashes.
"indeterminate" would also need to be fetched, then. But this is a good idea.
____________________________________________ 3. docs: the "Home" link on the top is broken. Actually all of them.
Links to headers in reference are invalid. ____________________________________________
Will be fixed if/when tribool is added to the main tree.
4. BOOST_TRIBOOL_THIRD_STATE.html should say where (i.e. no namespace of its own) the new name get declared.
Good point!
An example could be here.
Okay.
The file name may be lowercased.
That's another BoostBook issue... we could fix it, but it introduces the possibility of more clashes.
5. Question: will tribool play well with initialization library? (from Thorsten Ottosen) ____________________________________________
Will look into this further.
6. swap() member can be added.
Any particular reason? std::swap is as efficient as it gets.
7. serialization support (probably non-intrusive version) should be added.
Serialization of optional<> can be taken as example.
Okay.
8. why is tribool() initialized to false and not indeterminate? Some explanation should be in docs.
Because it's meant to mimic a "bool"... you can drop a "tribool" in where there used to be a "bool" and the semantics won't change unless something you call can introduce an indeterminate value. This rationale is admittedly a little weak---I can see reasons for having an indeterminate initial value as well.
9. Silly question: is there way to use ternary operator somehow to initialize tribool conditionally:
tribool t(x ? true : indeterminate); // something like that
Unfortunately, I don't know of a way to get the conversions to work out right for that. If only we could overload the ternary operator :(
10 compiling test with Intel C++ 7.0 I get errors: [snip] I get similar errors for VC6.
I'll work on portability.
11. Naming nitpick: maybe function default_indeterminate_name() would have better name get_default_indeterminate_name().
Sure. Doug