C++ needs reflection support
Are there any plans to add reflection support in the new standard? If there is one area where C++ is lacking it is in the area of reflection. With managed C++ or C++/CLI you can create some pretty generic module loaders via reflection without being forced to use a parameterized factory to factory out the objects. I know there are workarounds and design patterns such as the factory and/or abstract factory pattern but they are still not generic enough b/c you cannot new up a type that is passed in. You can create conditionals on a string, switch on an ID, etc., to create the object and/or a new factory to factory the object but reflection is non-existent. There are some API's available that mimic reflection for C++ and it can sort of be done in some nasty template meta-programming but I am of the opinion the language desperately needs direct support for reflection.
Reflection also enables code to 'look at' an object and find its members, properties, etc. Having used the property grid control to browse objects in various tools this type of support is extremely valuable and makes the code very simple. It also allows a tool to generically invoke a function via its name as well as provide facilities to pass in parameters of the correct type. Without this a generic invoke has to be written that, while possible, is not as elegant as a reflection solution.
I heard that way back when Bjarne was looking into eXtended Type Information or XTI. Has this been tabled or was it added?
What are your thoughts?