C++0x 右辺値参照サンプル

ConceptGCC 4.3.0 alpha 6(cygwin)で右辺値参照を試してみたのでそのサンプルです

右辺値参照の解説はこちら

#include <iostream>

using namespace std;

struct person {
    int age;
    string name;

    person(int age, const string& name)
        : age(age), name(name) {}
};


void foo(const person&& x)
{
    cout << "rvalue : " << x.age << "," << x.name << endl;
}


void foo(const person& x)
{
    cout << "lvalue : " << x.age << "," << x.name << endl;
}

int main()
{
    foo(person(22, "Akira")); // rvalue : 22,akira

    person johnny(38, "Johnny");
    foo(johnny); // lvalue : 38,Johnny

    return 0;
}