Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2005-05-20 19:40:17


Hi Tobias,

Thanks for the review.

"Tobias Schwinger" <tschwinger_at_[hidden]> wrote

> I don't like the '_TPL' suffix - I'ld prefer 'TEMPLATED' to be spelled
out.

I don't have strong feelings about our current spelling, but I am not sure
if I am crasy about BOOST_TYPEOF_TEMPLATED either. When David suggested
using mpl::identity<__typeof__(x)>::type to wrap native typeof, I thought we
can get rid of the xxx_TPL macros altogether (which would be a preferable
solution for me), but now I realize that "typename" is used twice in the
macto expansion. Which means we may also need BOOST_LVALUE_TYPEOF_TPL (or
analogous). I need to give this a little more thought, and I also like to
hear what other people think about naming.

> Making libraries work with Boost.Typeof implies collecting a lot of
information
> about types and templates which could be useful in other places as well:
> For example it would be possible to collect the names as well (and require
them
> to be fully qualified) to allow an efficient "compile time type info"
facility
> to be built upon it. There might be more interesting ideas in this
direction
> (and that's the primary reason for me to mention it here).

Agreed. Also I think Steve Dewhurst (who apparently did a lot of research
in this area) once published an article about decomposing a type and
bringing it back together...

> In the registration interface there is no way to get rid of the one
#include per
> file, so I would prefer a table passed as "named external argument" for
the
> registration data:
>
> #define BOOST_TYPEOF_REGISTRATION <table>
> #include BOOST_TYPEOF_REGISTER()

Not sure I understand this... Can you ellaborate?

> I didn't have any problems with my primary compilers, which are among the
> officially supported ones and did some testing on my secondary computer
(running
> linux) while writing this review:
>
> All tests failed with Intel 7.0 and Intel 8.1 ("no instance of function
template
> boost::type_of::at matches the argument list * - in BOOST_TYPEOF_TPL").

We did some work with Aleksandr Nasonov to port the library to Intel 8.0,
and we came pretty close -- only the exotic case "template<class T, Tn>"
didn't work, and we proved to ourselves that this was because of the
compiler bug. So I think Intel will be among first compilers to extend our
support.

Regards,
Arkadiy


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