30 lines · c
1#ifndef A_H2#define A_H3 4template <typename T>5struct 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 15template <typename T1, typename T2>16T1 fff(T2* t) {17 return T1(t, t);18}19 20inline A<int> ff(int i) {21 return fff<A<int>>(&i);22}23 24struct Aggregate {25 int member;26};27bool operator==(Aggregate, Aggregate) = delete;28 29#endif30