I have seen class in a library I am using, there is a use of operator overloading that I haven't seen and I can't understand. I can't call it, and it's not the typical parentheses operator overloading I've seen and used which is usually like void operator()(), with two sets of parentheses:
template <typename T, int N = 1>
class Bitmap {
// irrelevant code excised
T * operator()(int x, int y);
const T * operator()(int x, int y) const;
#ifdef MSDFGEN_USE_CPP11
explicit operator T *();
explicit operator const T *() const;
#else
operator T *(); // THESE ONES
operator const T *() const; // // THESE ONES
#endif
operator BitmapRef<T, N>(); // THESE ONES
operator BitmapConstRef<T, N>() const; // THESE ONES
};