Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2008-04-01 08:41:28

Eric Niebler wrote:
> Dave,
> Unless I hear otherwise, I'll resolve the technical issues with Proto
> you raised as follows:

Keep in mind, we had a bad sleeping night with the baby...

> 1) The aliasing issue (proto::_left as a typedef for
> proto::transform::left) will be resolved by eliminating the "transform"
> namespace and everything in it.

I'm sorry, I don't recall having any aliasing issue. Can you relate
this to something specific I wrote?

> 2) The "functional" namespace will be renamed "functor".

That rubs me the wrong way, but it may not be worth fighting the tide.
The "official view of the C++ community" as I understand it, is that
ever calling function objects "functors" was a big mistake because that
term already has another meaning in category theory which as you know
spills over into type theory and thus CS, which is even expressed as a
language construct in ML. That said, people don't seem to have stopped
saying "functor" when they mean "function object," and I doubt *I* can
stop them. I guess the question is whether Boost will contribute to
that terminology problem or help solve it.

> 3) "visitor" will be renamed "data"


> 4) I don't intend to rename the "call" transform or the "function"
> tag/metafunction. (If I renamed "call" to "apply" like I suggested, then
> I should also rename "is_callable" to "is_applicable" or some such,
> which is awful, IMO.)


> 5) You can override an expression's domain with
> "proto::as_expr<Domain>(expr)".

"You" meaning "end users of libraries built with proto?"

> This gives a way to mix expressions from
> different domains in the same expression.

I take it as_expr already exists?

> If you object to any of these resolutions, holler.

You'll only hear a mild squawk from me, about "functor."

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at