// { dg-do compile { target c++11 } }
void f()
{
  int i;
  auto lam = [i]{};		// { dg-message "" }
  decltype(lam) lam2 = { 1 };	// { dg-error "" "not an aggregate" }
  decltype(lam) lam3;		// { dg-error "" "deleted default ctor" }
  lam3 = lam;			// { dg-error "" "deleted assignment op" }
}
template <class T>
void g(T i)
{
  auto lam = [i]{};		// { dg-message "" }
  decltype(lam) lam2 = { 1 };	// { dg-error "" "not an aggregate" }
  decltype(lam) lam3;		// { dg-error "" "deleted default ctor" }
  lam3 = lam;			// { dg-error "" "deleted assignment op" }
}
int main()
{
  f();
  g(1);
}