1 | #ifndef A_H |
---|---|
2 | #define A_H |
3 | |
4 | template <typename T> |
5 | struct A { |
6 | template <typename I> |
7 | A(I i1, I i2) { |
8 | } |
9 | A(double) {} |
10 | A(double, double) {} |
11 | A(double, int) {} |
12 | A(int, double) {} |
13 | }; |
14 | |
15 | template <typename T1, typename T2> |
16 | T1 fff(T2* t) { |
17 | return T1(t, t); |
18 | } |
19 | |
20 | inline A<int> ff(int i) { |
21 | return fff<A<int>>(&i); |
22 | } |
23 | |
24 | struct Aggregate { |
25 | int member; |
26 | }; |
27 | bool operator==(Aggregate, Aggregate) = delete; |
28 | |
29 | #endif |
30 |