Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-05-16 09:40:52

Gennaro Prota <gennaro_prota_at_[hidden]> writes:

> Hi,
> I was grep'ing for my name in the boost repository in order to update
> any old license reference and found the following definition in
> implicit_cast.hpp:
> // Macro for when you need a constant expression (Gennaro Prota)
> #define BOOST_IMPLICIT_CAST(dst_type, expr) \
> ( sizeof( implicit_cast<dst_type>(expr) ) \
> , \
> static_cast<dst_type>(expr) \
> )
> This wasn't the form I submitted though, as the comma operator isn't
> allowed in a constant expression and I remember pointing out on this
> list that this was a case where it would be useful :) Maybe the above
> was simply copied from this post:
> where I was saying that it *doesn't* work and that I had to use the
> check_helper<> template.

So, should I just remove it? Looking back at that thread, I'm
surprised I included it in this header because I don't think I ever
really understood what you were saying.

I don't think there's an alternative to using the comma operator that
will work both when dst_type is a dependent type in a template and
when it is not dependent, because of differences in the need for

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at