|
Boost : |
From: Alexander Nasonov (alnsn-mycop_at_[hidden])
Date: 2003-07-08 10:55:57
Well, sometimes it's needed at compile-time. Though, I don't know how useful
it is. Can you give an example?
Some other questions. How to map member pointers to names? How to find a
member?
-- Alexander Nasonov Remove minus and all between minus and at from my e-mail for timely response David Abrahams wrote: > Alexander Nasonov <alnsn-mycop_at_[hidden]> writes: > >> David Abrahams wrote: >>> A problem with this is that the introspection information is only >>> available at runtime. A more-flexible system would use GCC-XML output >>> to generate something like: >>> >>> template <> >>> struct class_<Driver> >>> { >>> typedef mpl::vector<Person> bases; >>> >>> typedef mpl::vector< >>> member<int Driver::*, &Driver::licence_id> >>> , member<Date Driver::*, &Driver::licence_issue_date> >>> , member<void (Driver::*)(), &Driver::accelerate> >>> > members; >>> >>> ... >>> }; >>> >>> So all the introspection information could be available at >>> compile-time. >> >> Sometimes it's fine to have an introspection only at runtime. > > And sometimes it's not. > >> I just want to avoid duplications of class descriptions by multiple >> libraries. > > Which is exactly why, if you're going to write an introspection > framework, it should make information available in a form that works > for libraries which may need it at compile-time. > >> For example, Python and luabind could share common >> introspection information. > > Sure, great idea. > >> This is why I'm using visitors. Every intronspection elelemnt has >> correspondent node that can be visited. The challenge is to build a >> complete set of nodes with a complete set of operations. > > Sure, great idea. Why not a compile-time visitor, though? > > mpl::for_each anyone? >
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk