
on Sat Apr 21 2012, Olaf van der Spek <ml-AT-vdspek.org> wrote:
On Sat, Apr 21, 2012 at 11:33 AM, Dave Abrahams <dave@boostpro.com> wrote:
It is current behaviour. But is it expected behaviour?
Yes.
Based on what? Knowledge of this issue?
Yes. The range library originally treated char* as null-terminated, and there was an outcry.
Until the language gives us a way to distinguish string literals from other arbitrary arrays of char, it's the best we can do. The alternative is to have generic code suddenly stop working when T==char.
What about requiring the use of as_array or as_literal in all cases?
You mean, so that raw built-in arrays would cease to be ranges at all? I guess that's a possiblity. Nobody thought about that, IIRC. -- Dave Abrahams BoostPro Computing http://www.boostpro.com