Subject: Re: [boost] TTI library updated in the sandbox to version 1.4
From: Edward Diener (eldiener_at_[hidden])
Date: 2011-03-23 21:34:43


On 3/23/2011 8:25 PM, Steven Watanabe wrote:
> AMDG
>
> On 03/23/2011 04:10 PM, Edward Diener wrote:
>> I will be doing that. Unfortunately except for you and John Maddock no
>> one else has ever expressed an interest in TTI.
>
> Well, let me express interest too.

It is very much appreciated. Feel free to look at it and critiqued it if
you like and I will gladly listen and explain my decisions.

>
>> Maybe that sort of metaprogramming is only of interest to other
>> metaprogrammers and not normal end-users.
>
> That's probably true. I don't need functionality
> like this often, but when I do need it, it's really
> important. The most common use case for me
> is to preserve backwards compatibility when
> concept requirments change. (For instance,
> BOOST_MPL_HAS_TEMPLATE_XXX was critical
> for implementing result_of support in Boost.Lambda.)

The idea of the library is to provide this sort of compile-time
introspection for as many nested elements as could be effectively done.
I did not succeed for nested function templates but the doc explains
why. I did lift the BOOST_MPL_HAS_TEMPLATE_XXX into TTI under another (
I think more user-friendly ) name into TTI. All other elements have a
way of being introspected and I did add to my use of
BOOST_MPL_HAS_TEMPLATE_XXX more functionality which introspects a
specific class template signature, if that would ever be needed. Much of
the techniques were borrowed but I think I did a good job of overall
design, although it took me a few iterations/releases to settle on the
final ways of doing everything.

I would like to have it reviewed although I am also working to get VMD
into Boost, either as standalone or as part of pp-lib. Since TTI depends
optionally on some very small part of VMD, I am trying to get VMD
reviewed before TTI. But I know there is precedent for reviewing a
library even when it depends on another library which has not been
reviewed/accepted into Boost yet. In the case of TTI, I can easily add
the VMD functionality which it uses directly into the library if VMD in
some form does not get into Boost.