Examine the following code.
class Person {
std string first_name;
std string middle_name;
std string last_name;
public:
/* ...more code... */
};
Suppose I want to be able to construct a Person object by passing in three names to initialize the three fields. Further suppose I want to make this constructor as efficient as possible by allowing any of the three names to be moved instead of copied. Show how this can be done with a single constructor using sink parameters.