In the following code, I\'m not able to pass a temporary object as argument to the printAge function:
struct Person {
int age;
Person(int _a
Simply make your print function take your argument by const&. This is also logically right as it doesn't modify your argument.
void printAge(const Person &person) {
cout << "Age: " << person.age << endl;
}
The actual problem is the other way around. You are passing a temporary(rvalue) to a function which expects an lvalue.