On Fri, 17 Jan 2003 08:24:13 -0500, David Abrahams
<[EMAIL PROTECTED]> wrote:

>Aleksey and I were just discussing this one.  As soon as he's done
>implementing the "for_" algorithm it could look like this:
>
>template <unsigned long N> // N must be an *octal* constant
>struct binary
>    : for_<N, _1, shift_right<_1, int_<3> >, // "forward" state, condition, step
>            plus<bitand_<_1, int_<1> >, _2>  // "backward" step
>      >
>    {};
>
>Now binary<01101>::type::value = 13

Not that I think the application to "binary literals" is particularly
important, but an elegant implementation would be possible if string
literals and [] operator were allowed in constant expressions; this
way one could easily "extract" characters from a string literal and
use them as non-type template arguments of type char. Unfortunately
the committee seems on the road of prohibiting this and other similar
(and potentially more useful) uses of string literals in constant
expressions:

   http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#366


BTW, I've already felt limited by the fact that I cannot use comma
operators in constant expressions, just imagine about this one... :-/


Genny.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to