Boost logo

Boost :

Subject: Re: [boost] [mpl] BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF
From: Daniel Walker (daniel.j.walker_at_[hidden])
Date: 2010-07-18 21:54:53


On Sun, Jul 18, 2010 at 8:39 PM, Edward Diener <eldiener_at_[hidden]> 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


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