It is not a "three elements typedef", it is a pointer to member variable typedef. You can find more information about pointer to member variable here.
In your precise case, it allows you to instantiate variables of type "rt" that will point to a precise member of type int
of A
class, and then use it to access this member on A
instances.
#include <iostream>
class A{
public:
int c;
};
typedef int A::* rt;
int main() {
A instance;
rt member; // This is a pointer to A member.
member = &A::c; // This pointer will point on c member of A class
instance.c = 0;
instance.*member += 2; // As member point on c, this code access to the c member.
std::cout << instance.c << std::endl; // This will now output "2".
}