[Bug c++/27347] [4.0/4.1/4.2 Regression] static array member specialization failure
mmitchel at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Jun 15 02:00:00 GMT 2006
------- Comment #5 from mmitchel at gcc dot gnu dot org 2006-06-15 01:51 -------
John and I talked about this a bit more, and he's going to update the core
issue.
To me, there are only a few options here:
1. S<T>::i has non-dependent type "int[]".
In that case, the sizeof expression is an error.
2. S<T>::i has non-dependent type "int[1]".
In that case, the explicit specialization is an error.
3. S<T>::i has dependent type.
But, why should it? It doesn't use any template parameters.
I like option #2 best. If the in-class declaration for the code in the
original report were "static char const name[1]" then everyone would agree the
specialization is invalid. Why should it make a difference whether the size of
the array is explicitly specified or implied by the initializer? That
distinction doesn't matter anywhere else in the language.
My second choice is option #1.
I'm going to close this PR as invalid. I don't think there's clear support for
this code in the standard.
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27347
More information about the Gcc-bugs
mailing list