Hi

I'd like to introduce a new (and very exciting) library to the C++ community: CAMP.

CAMP is an open-source library (under the LGPL license) that allows to emulate reflection features in C++, like you can find in Java, .Net, etc. In short, reflection allows to manipulate classes, functions, properties and objects dynamically without having to know about (at compile time) their existence, their name or even their prototype.

So what can you do with CAMP? Well, for those who know Qt and its QObjects with abstract signals, slots and properties, you can basically do the same thing with CAMP. But it's not limited to that, we can also imagine a variety of applications based on meta-information: automatic serialization in XML or other format, a generic object editor, writing bindings to script languages in a few lines of code, ...

Another example is boost.python; in fact CAMP is highly inspired from this library (and luabind, which is also inspired from boost.python). So you can declare your classes, functions, properties, enums, etc. in a way very similar to these two libraries, except that the resulting meta-information is available directly as building blocks for something else, you're not limited to using it for the X scripting language.

We recently published a brand new website for the community, with a forum, a wiki, a bug tracker, a file repository, etc. :
CAMP Developer Zone

Don't hesitate to give your feedback, or ask questions if some parts of CAMP are not clear to you