------- 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

Reply via email to