1 // PR c++/64848
2 // { dg-do compile { target c++11 } }
3 
4 template<typename Signature>
5 struct function;
6 
7 template<typename R, typename... Args>
8 struct function<R (Args...)>
9 {
10   template<typename F>
11   function(const F&) { }
12 };
13 
14 template<typename T>
15 class A
16 {
17   T someVar;
18 };
19 
20 template<typename T>
21 class B
22 {
23   int x;
24 
25   function<A<double>(A<int>&)> someLambda = [&](A<int>& aInt){
26     int xVar = x;
27     A<double> aRet;
28     return aRet;
29   };
30 };
31 
32 B<int> a;
33