#ifndef A_H | |
#define A_H | |
template <typename T> | |
struct A { | |
template <typename I> | |
A(I i1, I i2) { | |
} | |
A(double) {} | |
A(double, double) {} | |
A(double, int) {} | |
A(int, double) {} | |
}; | |
template <typename T1, typename T2> | |
T1 fff(T2* t) { | |
return T1(t, t); | |
} | |
inline A<int> ff(int i) { | |
return fff<A<int>>(&i); | |
} | |
struct Aggregate { | |
int member; | |
}; | |
bool operator==(Aggregate, Aggregate) = delete; | |
#endif |