
On Sun, Jul 18, 2010 at 8:39 PM, Edward Diener <eldiener@tropicsoft.com> wrote:
On 7/18/2010 8:02 PM, Daniel Walker wrote:
Do an svn update on your local copy of trunk. You no longer need to pass arguments to detect member templates. This change was checked in a couple of weeks ago, so you might not have gotten it yet. See the updated documentation.
I did not find anything in the updated documentation about these macros. Was I supposed to generate updated docs for MPL in the trunk through some jamfile ?
Hmm, that's a good question. The doc sources are updated on trunk, but I'm not sure when the actual html is generated for the release...
<snip>
The code in the MPL is highly complicated, else I would spend the hours trying to understand it and perhaps fix it. But I hope that at least reporting my failure with VC9 and VC10 will help to get this working.
Thanks for reporting! Actually, when I ran your example code I noticed a header dependency in boost/mpl/has_xxx.hpp that I had accidentally missed. So, your report has helped improve things already.
I am glad.
Thanks for your code. I will look at it and see if I can't do something further on my own which would allow one to find out the number and type of the template parameters of a class template at compile time, given the template name. Something instinctively tells me that this might be accessible, if it has not already been done.
Yes, please do look into it. As a hint for understanding preprocessor metaprograming, compile with -E and look at the preprocessor output for different macros. It will help you find your way around. I believe it's entirely possible to write a template_arity metafunction analogous to function_arity in Boost Function Types. There is something close in boost/mpl/aux_/template_arity.hpp. It might also be nice to have an is_variadic_template for c++0x. Just ask if you have any questions. Daniel Walker