Boost logo

Boost :

From: Matus Chochlik (chochlik_at_[hidden])
Date: 2008-03-07 09:49:02


Hey,

I see that this discussion is heading somewhere towards the
support for graphics programing (which is a good thing ;) ),

but as you were looking for ideas, I thought that I'd mention one other
thing which I'm sorely missing in C++ - a good (prefferably mirror-based)
reflection facility/library.

One that would be supporting both compile-time and (at least partially)
dynamic reflection of base types, functions, their parameters, return value,

structs, unions, classes and their base classes, attributes and member
functions, also the "special" ones like constructors / destructors,
instances, variables, and so on.

Reflection can be a great tool when doing certain kinds of things,
especially persistence-related, like (de)serialization in
multiple formats, (de)marshalling during RPCs, but also as a support
for scripting, virtual construction, object inspection,
custom debugging and much more.

In the proces of developing my own reflection library few years ago,
I learned that designing such a little-more-than-basic-facility is quite
difficult, if you want to reflect more than the types, simple classes
their attributes and member functions.

Problems start to arise when one is trying to reflect containers,
objects behind interfaces (like an implementation of a xml document,
or a stream, for example) or objects behind one or even behind
multiple proxies and when trying to serialize or send such
objects over a network.

With such classes/objects it is not obvious what to reflect, the internal
implementation, it's public interface, one of it's proxies or
whether to allow to switch between these meta-classes. This depends
on the context.

The implementation of mine partially addressed some of these issues,
but it uses many things, that are not implemented in the boost libraries,
which I had coded myself and it definitelly needs a major or possible
complete redesign and rewrite.

Unfortunatelly "they" ;-) want me to finish my PhD thesis so I don't have
much free time right now to do that. But I would be glad to lend a hand
in the near future and offer my humble expertise in this field if there is
any
interest ;)

I'm aware of the boost.extension/boost.reflection project and as

http://boost-extension.blogspot.com/2008/02/back-at-work.html

claims, the show is back on the road again ;) so I'm definitelly looking
forward to see some progress here too.

best regards,

-- 
________________
::matus_chochlik

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk