
Jonathan Turkanis wrote:
"Eric Niebler" <eric@boost-consulting.com>
<< xpressive 0.9 >>
Looks great!
Thanks!
A few questions. (Please forgive me if they are answered in the docs, I haven't finished reading them):
- Have you considered allowing format strings to be bound statically?
That hadn't occured to me. Certainly possible, but I think the returns would be small. The complexity of doing string replacements is linear, and so is not as sensitive to optimization as pattern matching. And the format string has very simple syntax, so static syntax checking isn't as big of a win here, either.
- Have you considered using _1, _2, _3 instead of s1, ... for capturing paretheses? You could also use them as placeholders in statically-bound format strings.
Yes, I used _1, _2, _3 for a long time. I abandoned it because of name conflicts with the identically-named placeholders from other boost libraries. I picked s1, s2, ... for two reasons: 1) The "s" in "s1" stands for "sub-match", which is what these thigs represent. 2) s1 kind of looks like $1, which is the perl equivalent. That said, I'm open to suggestions for avoiding the name conflicts. I would consider switching back to _1 _2 _3 if the technical problems were overcome and if people liked it better.
- have you considered overloading operator/ to emulate perl syntax for substitution. E.g.,
s/expr/fmt, sub/expr/fmt, or just expr/fmt
could return a function object with templated operator which invokes regex_replace.
A little too cute, IMO.
Just some thoughts ....
Keep 'em coming. -- Eric Niebler Boost Consulting www.boost-consulting.com