Boost logo

Boost Users :

From: John Maddock (john_maddock_at_[hidden])
Date: 2003-01-08 07:16:55


> Some further follow-up on this. I've created a minimal program that
> exhibits the new problem behavior:
>
> /******************************************/
> #include <boost/type_traits.hpp>
> #include <boost/static_assert.hpp>
>
> template < typename ValueType >
> struct A
> {
> BOOST_STATIC_ASSERT(boost::is_integral<ValueType>::value);
> };
>
> extern "C" int main(int argc, char* argv[])
> {
> return 0;
> }
> /******************************************/
>
> The fact that this assertion fails is counter-intuitive to me, since
> there is no instantiation to compile. Note that this behavior seems
> limited to the use of "is_integral" as the type predicate. Constructing
> a similar program using "is_POD" behaves as expected:

I can reproduce that with both VC6 and VC7, all the other compilers I have
access to are OK with it. It's clearly a compiler bug, because the assert is
triggered even though no instance of the template class is ever created.
Unfortunately I don't have any kind of workaround :-(

John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/index.htm


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net