printAge
次のコードでは、一時オブジェクトを引数として関数に渡すことができません。
struct Person {
int age;
Person(int _age): age(_age) {}
};
void printAge(Person &person) {
cout << "Age: " << person.age << endl;
}
int main () {
Person p(50);
printAge(Person(50)); // fails!
printAge(p);
return 0;
}
私が得るエラーは次のとおりです。
error: invalid initialization of non-const reference of type ‘Person&’ from an rvalue of type ‘Person’
これは、rValue を期待する関数に lValue を渡すことに関係していることに気付きました... std::move などを使用して lValue を rValue に変換する方法はありますか? 定数パラメーターを取得しようとしましたが、うまくいかないようです。