----- Original Message ----- From: "Gennaro Prota" <[EMAIL PROTECTED]>
> Yes. It would be nice if we could come up with an implementation of > BOOST_WORKAROUND or another macro, let's say > BOOST_UNVERSIONED_WORKAROUND, that generates a warning or (more > realistically) an error when you invoke it with e.g. > > BOOST_UNVERSIONED_WORKAROUND(__BORLANDC__, 0x569) > > and __BORLANDC__ expands to a value greater than 0x569. That would be > a reminder for the maintainer to either bump 0x569 to a higher value > (i.e. to update the "last checked comment") or change the invocation > to BOOST_WORKAROUND(__BORLANDC__, <= 0x569)). But off the top of my > head I can't think any way to do that. It's possible with a little scaffolding. > The point is of course that if the compiler is fixed an unversioned > check will still use the workaround, silently. Well, there are special > cases where this doesn't hold; e.g. one of the tests we have in > dynamic_bitset: had I written The preprocessor library uses unversioned checks. The maintenance cost associated with bumping up all the versions referred to would be high. I think it makes a big difference with whether or not a workaround requires using behavior that is non-compliant. If it doesn't, an unversioned check is better, IMHO. At the same time, some type of "use strict mode" macro should unilaterally force the non-workaround version. This is a good way to find if new compiler versions or previously untested compilers can handle the strict code. [snip] > Such a macro would help the programmer to not "forget" to check > whether the workaround is still needed. As an alternative we could > decide to ban unversioned checks at all. I don't know, it depends on > whether we consider more important avoiding the mainteinance burden or > exploting the compiler (or library) capabilities. It is possible to make it generate a warning or an error if a compiler version is higher than the specification. Of course, you also don't have to use the preprocessor to do this sort of thing. Paul Mensonides _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost