|
Boost : |
From: Greg Colvin (gcolvin_at_[hidden])
Date: 1999-08-31 12:30:15
From: Valentin Bonnard <Bonnard.V_at_[hidden]>
> ...
> /users/bonnard/debug_mode.hpp:
> > extern const bool debug_mode = true
>
> /users/bonnard/debug_mode.cpp:
> > #include "debug_mode.hpp"
> > const bool debug_mode;
I think that, despite the extern, the declaration in debug_mode.hpp is a
definition, because of the initializer:
3.1 Declarations and definitions [basic.def]
1 A declaration (clause _dcl.dcl_) introduces names into a translation
unit or redeclares names introduced by previous declarations. A dec-
laration specifies the interpretation and attributes of these names.
2 A declaration is a definition unless it declares a function without
specifying the function's body (_dcl.fct.def_), it contains the extern
specifier (_dcl.stc_) or a linkage-specification1) (_dcl.link_) and
neither an initializer nor a function-body, it declares a static data
member in a class declaration (_class.static_), it is a class name
declaration (_class.name_), or it is a typedef declaration (_dcl.type-
def_), a using-declaration (_namespace.udecl_), or a using-directive
(_namespace.udir_).
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk