[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    [Bug c++/58037] New: sizeof... accepted only in some contexts
From:       "nmm1 at cam dot ac.uk" <gcc-bugzilla () gcc ! gnu ! org>
Date:       2013-07-31 12:55:40
Message-ID: bug-58037-4 () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58037

            Bug ID: 58037
           Summary: sizeof... accepted only in some contexts
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nmm1 at cam dot ac.uk

With 4.8.1:

template<int ... Dims>
class weeble {
    static constexpr int Ranks[sizeof...(Dims)] = {Dims...};
    const int rank = sizeof...(Dims);
};

weeble<3,5> x;

produces:

junk.cpp:4:22: error: expected ';' at end of member declaration
     const int rank = sizeof...(Dims);
                      ^
junk.cpp:4:28: error: expected unqualified-id before '...' token
     const int rank = sizeof...(Dims);
                            ^
junk.cpp:4:22: error: expected primary-expression at end of input
     const int rank = sizeof...(Dims);
                      ^
That doesn't look right, especially as that use of sizeof... is almost
straight out of the standard.

For what it is worth, -v produces:

Using built-in specs.
COLLECT_GCC=/home/nmm/GCC/bin/g++
COLLECT_LTO_WRAPPER=/home/nmm/GCC/libexec/gcc/x86_64-unknown-linux-gnu/4.8.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/home/nmm/GCC --disable-bootstrap
--enable-languages=c,c++,fortran --enable-werror=yes --disable-decimal-float
Thread model: posix
gcc version 4.8.1 (GCC)
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic