jeudi 3 août 2017

Why it does not declare a reference type if 'auto' var is initialized using a function returning reference?

When an 'auto' var is initialized using a function that returns a reference, why the var type is not a reference? e.g. In following example, why type of x is Foo and not Foo& ?

class TestClass {
public:
    Foo& GetFoo() { return mFoo; }
private:
    Foo mFoo;
};

int main()
{
    TestClass testClass;
    auto x = testClass.GetFoo(); // Why type of x is 'Foo' and not 'Foo&' ?

    return 0;
}

EDIT: The link explains how to get the reference, but my question is the reason for this behavior.

Aucun commentaire:

Enregistrer un commentaire