#include struct infty {}; template struct wrap { T x; wrap(T const & x_): x(x_) {} operator infty() const { return infty();} operator T () const { return x;} }; double g(infty) { return 3;} double f(double) { return 30;} int main() { wrap w(2); std::cout << w +1 <