#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