
Pavel Vozenilek <pavel_vozenilek <at> hotmail.com> writes:
Reviews of binary int utility are needed. The tool is very small (but useful) and review should not take much of time. Both Scott Schurr and Matt Calabrese put quite a lot of effort into their work.
Scott Schurr's version is in http://boost-consulting.com/vault/ (file binary_int.zip). It can be used as: unsigned int regValue2 = binary_int<1000,1001,0011,0000>::value;
I vote not to accept this library for the following reasons: 1. No documentation 2. It's not clear whether it's supposed to be an int constant or a literal. These are different things. The former is always int while the latter has different types depending on constant's value. Refer to 2.13.1/2. 2a. If it's supposed to be an int constant, then I expect one class template for every integral type. 2b. If it's supposed to be a literal, then it should obey 2.13.1/2 rules as if the literal were octal. 3. I expect integration with MPL.
Matt Calabrese's version is in http://www.illegal-immigration.com/Riv/boost/binary_literal2.hpp. It can be used as: int x = BOOST_BINARY_LITERAL( 101 0111 1010 0110 );
This version looks better to me. There is no contradiction with 2.13.1/2 rules. I don't like BOOST_SUFFIXED_BINARY_LITERAL much, though. Is it possible to get rid of it and to use BOOST_BINARY_LITERAL( 0000 0110U ) instead? -- Alexander Nasonov