Hmmmm - I never imagined that something like this would be so problematic.

For now with my VC  7.0 compiler I can use the following and it gives
me almost exactly what I need.  The warning message points exactly
to the place in my code where I have invoked it - just like BOOST_STATIC_ASSERT.

I would hope something like this could be boostified so that I could use it outside
of a function.

template<bool>
struct warning
{
        typedef int type;
};

template<>
struct warning<true>
{
        typedef char type;
};

#define BOOST_STATIC_WARNING(B) \
{ \
        char x = (warning<B>::type)0xffff; \
}

>I'm not sure that it can be done, or at least done in a way that's 
>worth it.

>Warnings are completely non-portable, since:

>1.     They have no official standing in the standard, just errors do
>2.     They are made up by each compiler vendor
>3.     They are 100% legal code, the vendor just doesn't like it

>These combine into something that cannot be generally tested.  We would 
>have to examine every compiler and make huge conditional test cases.  
>And what would happen if someone hates warnings and turns them all off? 
>  It's not practical.

>Daryle



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to