On Sat, 18 Jan 2003 20:16:36 -0700, Greg Colvin <[EMAIL PROTECTED]> wrote:
>At a meeting years ago I proposed to make string literals more >useful as constant expressions, but we decided against that. >As I recall part of the problem is that linkers are free to map >the same literal string to different addresses in different >compilation units. Well, it's obvious that implications must be carefully analyzed. What I was thinking to in the context of this thread was probably something *less general* than what you proposed: making an expression of the form string-literal [ integral-constant-expression ] or integral-constant-expression [ string-literal ] an integral constant expression of type const char. Problems with the fact that such expression is currently an lvalue are easily solvable with appropriate rules. The idea was that given, for instance, template <char c> struct binary_digit { static const int value = (c == '0'? 0 : 1); }; you would be able to write: binary_digit <"110"[1]>::value just like you can now write binary_digit <'1'>::value This is IMHO useful in a number of idioms. Do you disagree? Genny. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost