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

           Summary: error for trivial use of range-based 'for'
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: zeratul...@hotmail.com


GCC trunk (r173706) gives an error for the following trivial use of range-based
'for':

#include <vector>

void f(const std::vector<int>& v)
{
    for (int i : v)
        ;
}


The error is:

test.cpp: In function ‘void f(const std::vector<int>&)’:
test.cpp:5:18: error: range-based ‘for’ expression of type ‘const
std::vector<int>’ has incomplete type

The error goes away if I change the function to take the vector by value rather
than reference.

GCC 4.6 compiles the code fine.

Reply via email to