This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/2831
- To: nobody at gcc dot gnu dot org
- Subject: Re: c++/2831
- From: lerdsuwa at gcc dot gnu dot org
- Date: 22 May 2001 14:46:00 -0000
- Cc: gcc-prs at gcc dot gnu dot org,
- Reply-To: lerdsuwa at gcc dot gnu dot org
The following reply was made to PR c++/2831; it has been noted by GNATS.
From: lerdsuwa@gcc.gnu.org
To: at@sourceware.cygnus.com, fspam@sourceware.cygnus.com,
gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:
Subject: Re: c++/2831
Date: 22 May 2001 14:38:58 -0000
Synopsis: operator ?: requires storage for initialized static member constants
State-Changed-From-To: open->closed
State-Changed-By: lerdsuwa
State-Changed-When: Tue May 22 07:38:58 2001
State-Changed-Why:
Not a bug. The definition of static data member is
required in both situations, flags and aflags assignments.
However, a standard-compliant does not have to verify this
(as can be seen from the aflag assignment) to allow
optimization. See section 9.4.2 para 4-5 of the standard:
4 If a static data member is of const integral or const
enumeration type, its declaration in the class definition
can specify a constant-initializer which shall be an
integral constant expression (5.19). In that case,
the member can appear in integral constant expressions
within its scope. The member shall still be defined in
a namespace scope if it is used in the program and the
namespace scope definition shall not contain an initializer.
5 There shall be exactly one definition of a static data
member that is used in a program; no diagnostic is
required; see 3.2. ...
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2831&database=gcc