Hi folks,
the following C++ snippet used to compile, but doesn't anymore with current gcc 
trunk.
Hope this helps!

Thanks,
Sebastien Alaiwan

-----------------
// simple.cpp
int getValueOfSix()
{
  return 6;
}

template<int A>
void f()
{
  auto const c = getValueOfSix();

  auto lambda = [&] ()
  {
    auto a = c;
    auto b = c;
  };
}

void g()
{
  f<0>();
}

-----------------
Here are the errors I get:

$ g++ -c -std=c++11 simple.cpp

simple.cpp: In instantiation of ‘f()::<lambda()> [with int A = 0]’:
simple.cpp:12:19:   required from ‘struct f() [with int A = 0]::<lambda()>’
simple.cpp:16:3:   required from ‘void f() [with int A = 0]’
simple.cpp:21:8:   required from here
simple.cpp:15:14: error: redeclaration of ‘const int& c’
     auto b = c;
              ^
simple.cpp:14:14: note: ‘const int& c’ previously declared here
     auto a = c;
              ^
simple.cpp: In instantiation of ‘void f() [with int A = 0]’:
simple.cpp:21:8:   required from here
simple.cpp:12:17: sorry, unimplemented: non-trivial designated initializers not 
supported
   auto lambda = [&] ()
                 ^


Reply via email to