Boost logo

Boost :

From: Kevlin Henney (Kevlin.Henney_at_[hidden])
Date: 1999-08-31 12:12:58


Valentin Bonnard wrote:
> Greg Colvin wrote:
[...]
> Doesn't that break the ODR? Or am I confused again?

If MY_DEBUG is defined the same way in all headers, it's
fine. If not, _and_ you are using headers which use the
macro, then it breaks the ODR.

I leave the responsabillity to define debug_mode
consistently to the user.

   So we're back where we started?

Yes, it's pretty easy to break the ODR by defining an
constant with external linkage with different values
in different TUes. At least, in this case, the bug is
with the definition of debug_mode, not with the macro.

   I feel this to be an unrealistic and intrusive requirement for many
   projects. It may be easy to satisfy for small, single developer
   projects, but can introduce many problems for larger, existing projects
   (problems of both a technical and a political nature). Debugging
   features should be under the control of the developer, and not
   vice-versa.

   It is one thing to say that it is easy to break ODR, and quite another
   to offer people a facility that makes it even easier >:->

   Kevlin


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk