|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-02-17 22:03:08
"Steve Cornett" <boost_at_[hidden]> writes:
> The file boost/preprocessor/stringize.hpp contains a trivial bug,
> for which I have attached a proposed patch. The problem is that
> there are three incorrect usages of the ## operator. The proposed
> fix is to simply remove the ## operators, as they are unnecessary.
>
> The ## operator joins two tokens and makes a new single token. But
> all three usages of ## in this file attempt to join an identifier
> with '(', which does not result in a single token. The action taken
> by most C/C++ translators in this situation is to rescan the invalid
> text back into two tokens, which makes the incorrect ## usage
> innocuous in most situations. However, the behavior is undefined by
> the C++ and C standards. With our code coverage tool, this improper
> ## usage results in a warning.
Does your tool account for illegal code that may be necessary to work
around buggy C++ [preprocessor] implementations?
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk