111
|
1 // PR c++/61959
|
|
2 // { dg-do compile { target c++11 } }
|
|
3
|
|
4 template <class Coord> struct BasePoint
|
|
5 {
|
|
6 Coord x, y;
|
|
7 constexpr BasePoint (Coord, Coord) : x (0), y (0) {}
|
|
8 };
|
|
9 template <class T> struct BaseCoord
|
|
10 {
|
|
11 int value;
|
|
12 constexpr BaseCoord (T) : value (1) {}
|
|
13 };
|
|
14 template <class units> struct IntCoordTyped : BaseCoord<int>, units
|
|
15 {
|
|
16 typedef BaseCoord Super;
|
|
17 constexpr IntCoordTyped (int) : Super (0) {}
|
|
18 };
|
|
19 template <class units>
|
|
20 struct IntPointTyped : BasePoint<IntCoordTyped<units> >, units
|
|
21 {
|
|
22 typedef BasePoint<IntCoordTyped<units> > Super;
|
|
23 constexpr IntPointTyped (int, int) : Super (0, 0) {}
|
|
24 };
|
|
25 struct A
|
|
26 {
|
|
27 };
|
|
28 IntPointTyped<A> a (0, 0);
|