[C++-sig] langbinding questions
Dave Abrahams
dave at boostpro.com
Wed Jan 25 16:37:59 CET 2012
Hi Jim,
Sorry this is so late. Sick, work, sick, work... you know how it can
be.
on Sun Jan 15 2012, Jim Bosch <talljimbo-AT-gmail.com> wrote:
> I've been trying to wrap my head around some Boost.Langbinding
> concepts as part of my (slow, but not dead) work on an eventual
> Boost.Python v3. I've got some questions - and if there are others who
> I should be sending this email to, please let me know and/or forward.
Yeah, you should send it to the langbinding list and/or Cc: Daniel
Wallin.
> As I understand it, the basic idea is:
>
> 1) We build a language-agnostic front-end "module definition" data
> structure that gets stored in a static object.
I don't know what you mean by "static object," but the rest is dead on.
> 2) That data structure hides all the type information somehow
Hides it at compile-time; represents it at runtime.
> - I'm imagining a polymorphic non-template base class with templated
> derived classes, or something equivalent. But I get the sense that
> this may be an incorrect assumption.
I don't know why; sounds like a classic type erasure pattern.
> 3) We pass in a target-language-specific "module builder" to the
> "module definition", which goes through itself and calls visit member
> functions on the "module builder", which in turn creates the
> target-language wrapper.
That sounds right.
> I can see, roughly, how this would work if there's only one module
> builder class (i.e. one target language). The polymorphic classes in
> the module definition would have virtual functions that just take a
> module_builder instance, and then they can call templated visit member
> functions on the module_builder.
>
> But I don't think that model is what was intended - it doesn't scale
> well to multiple target languages,
In what way?
> and it doesn't explain why the module_builder classes in the proposal
> (I'm looking here: http://www.boostpro.com/writing/oopsla04.html) use
> CRTP.
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
More information about the Cplusplus-sig
mailing list