There is a segment of code incomprehensible when my friend was reading this hpp file. Specifically,
A(B, C)
, int(int, int)
, or in this case T(Type::*)
means? I've already seen usages such as std::function<int(int, int)>
, but still have no idea what int(int, int)
, alone, means.Type::*
mean? How can a asterisk mark follows ::
directly?::*
is used to declare a pointer to a member of class. So in this case, it's pointing to a member of the template type callled Type
.
std::function<int(int, int)>
is an std::function for holding a method that takes paramters of (int, int), and returns an integer result. (This is an example of the famously complicated C/C++ type declaration syntax).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With