
Gennaro Prota <gennaro_prota@yahoo.com> 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:
http://lists.boost.org/MailArchives/boost/msg42102.php
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 "typename". -- Dave Abrahams Boost Consulting http://www.boost-consulting.com