++ rvalues (bacically temporaries), s (Man*)good_man lvalue, Man*&. pMan2 lvalue, AddMan. (Man*)good_man - r. .
AddMan, const lvalue, .
void AddMan(Man* const& man){};
, , . , , lvalue, "" , . , AddMan.
AddMan((Man*&)good_man); // "works" by pretending everything is OK. It isn't.