PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / template / crash113.C
blob3d3a562bdcd518d0386534a2bde64657cc92327c
1 // PR c++/53581
3 template<class A, int M, int N>
4 class Child;
6 template<class A, int M, int N>
7 class Base
9 public:
10   Child<A, M, N> operator-(const Base<A, M, N> &m) const
11   {
12     Child<A, M, N> diff;
13     return diff;
14   }
16   A test() const
17   {
18     return 0;
19   }
21 private:
22   A values[M * N];
25 template<class A, int N>
26 class Ops
28 public:
29   virtual ~Ops() {}
31   bool bar() const
32   {
33     Child<A, N, N> mat;
34     return (*static_cast<const Child<A, N, N>*>(this) - mat).test();
35   }
39 template<class A, int N>
40 class Child<A, N, N> : public Base<A, N, N>, public Ops<A, N> {};
42 class ImageWarp
44   bool bar() const
45   {
46     return foo.bar();
47   }
49   Child<float, 3, 3> foo;