Listing 2
(a)Chain<Reservation, std::string> rc = Member_Link<Reservation, unsigned int>(&Reservation::user_id) + User_Link() + Member_Link<User, std::string>(&User::name); Reservation r; std::string &user_name = rc.traverse(r)(b)
Ref_Chain<Reservation_Hack, std::string> rc_hack (Member_Link<Reservation, User>(&Reservation_Hack::user) + Member_Link<User, std::string>(&User::name));