A user-defined conversion function enables an implicit or explicit conversion between types. Such, a function has the following form (no return type and no parameters):
struct foo { operator int() const {return 42;} }; foo f; int i = f; // implicit conversion