|
Boost : |
From: Gary Powell (powellg_at_[hidden])
Date: 2001-12-10 17:15:27
Sorry I wasn't able to participate in this discussion earlier, but I have a
couple of comments which may clarify things.
1) Don't be afraid of changing the Loki interface. First off you can write
2nd Ed. books and make more money, but all joking aside, once people really
start using something, it often become obvious what should have been done.
And in this case other than implementation details, I haven't seen a
conveniencing argument that either mpl or loki have the interface of choice.
2) Please don't go away just because people challenge you. Its a sign of
interest. I like a lot of what I see in Loki.
3) Implementation doesn't matter. Ok, it does, in the sense of whether or
not I as a customer can use it on my compiler, and whether it generates the
most efficient code, but in the grand scheme of typelists, interface is what
is critical. Define the interface, that's what the standard does. Then we
can choose the mpl or the loki implementation. The right one will become
obvious after we've used it a while.
4) mpl and loki, aside from typelists appear to complement each other. In
C++ we need all the meta programming help we can get. It isn't clear what
the future of meta programming and C++ is, so good ideas should be nurtured
and fed. We keep reinventing things like tuples, typelists etc, so they
must be necessary building blocks for the next generation programs.
5) Tuple's implementations details are hidden because at the time Jaakko had
no real idea that exposing them was what a user of the library would want.
Lambda uses tuples, and that's the main known use of them. As they are used
by more people, we/he can fix them. Boost is this sort of place were good
ideas can be tested, used, and matured. Mature ideas can be sent here, but
it isn't a requirement. We want mature ideas to migrate to the standard,
but they won't mature, unless they get general exposure, feedback and
testing. That sometimes requires abandoning things that looked good at the
time, but subsequent ideas have superseded them.
The next step as I see it, is for Andrei and Aleksey to identify what are
the differences between the two implementations and agree to either have a
common name for those interfaces that have a common result, no matter what
the implementation is, and to have non-common names for the unique aspect of
the typelists. I'm willing to bet that mpl has a superset of loki's and that
would be ok.
If you want to discuss this in public, its great reading, but it might make
sense for those two to go off and figure this out of the spot light. Just my
opinion.
Yours,
-gary-
PS
For what its worth tuples uses the same sort of simple recursion as Loki.
It works, and therefore no other paths were explored, that doesn't make it
the "right" or "best" solution.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk