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



             Bug #: 56794

           Summary: C++11 Error in range-based for with parameter pack

                    array

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: bisq...@iki.fi





G++ 4.7.2 and 4.8.0 give the following error message for the for-loop in below

code:



tmp.cc:10:17: error: range-based 'for' expression of type 'const int []' has

incomplete type



On G++ 4.6.3 (and Clang++), it compiles fine. Regression?





template<int... values>

static void Colors()

{

    static const int colors[] = { values... };

    // ^ This version passes in G++ 4.6 and Clang++ 3.0, fails in G++ 4.7 and

4.8



    //static const int colors[sizeof...(values)] = { values... };

    // ^This passes in all of them



    for(auto c: colors) { }

    // ^ This line is the one that gets the error message

}



int main()

{

    Colors<0,1,2> ();

}

Reply via email to