From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-03-29 18:43:26
I know we discussed this issue. If we had a search engine up and
running, I'd just refer this guy to our rationale. In the meantime, is
there anyone who remembers the discussion and would like to follow up to
----- Original Message -----
From: "Ruslan Abdikeev" <ruslan_abdikeevREMOVE_IT_at_[hidden]>
> In 9.4.2/4, C++ standard explicitly requires to have a namespace
> scope definition of used static const data member of integral type,
> even if it has a constant-initializer.
> That is,
> struct A
> static const int x = 7;
> requires to have somewhere
> const int A::x;
> if value of A::x is used.
> However, Boost (www.boost.org) does not follow this practice.
> For C++ implementations that support constant-initializers
> it declares static const data members with const-initializers
> (but does never define it).
> Otherwise, it uses "enum" workaround.
> Boost is a high-quality library which is overparticular to
> standard compliance and non-standard extensions,
> so I was very surprised to spot this issue.
> Is it a Boost's fault, or it is my misunderstanding of standard?
> Ruslan Abdikeev
> VR-1 Entertainment Corp.
> [ comp.std.c++ is moderated. To submit articles, try just posting
> [ your news-reader. If that fails, use
> [ --- Please see the FAQ before
> [ FAQ:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk