[Bug c++/53628] New: [C++11][DR 712] Compiler requires definition of static member constants when not odr-used
daniel.kruegler at googlemail dot com
gcc-bugzilla@gcc.gnu.org
Sun Jun 10 21:35:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53628
Bug #: 53628
Summary: [C++11][DR 712] Compiler requires definition of static
member constants when not odr-used
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: daniel.kruegler@googlemail.com
The following example leads to a linker error when compiled in C++11 mode using
gcc 4.8.0 20120603 (experimental):
//---
struct S
{
static const int a = 1;
static const int b = 2;
};
int main(int argc, char** argv)
{
return argc > 1 ? S::a : S::b;
}
//---
"8|undefined reference to `S::a'|
8|undefined reference to `S::b'"
This example is now valid with the acceptance of
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#712
and should no longer require a definition of either S::a or S::b.
More information about the Gcc-bugs
mailing list