Değerler ve değerler hakkındaki bu açıklamayı okurken , bu kod satırları bana yapışmıştı:
int& foo();
foo() = 42; // OK, foo() is an lvalue
Bunu g ++ 'da denedim, ancak derleyici "foo ()' ya tanımsız başvuru" diyor. Eklersem
int foo()
{
return 2;
}
int main()
{
int& foo();
foo() = 42;
}
İyi derler, ancak çalıştırıldığında segmentasyon hatası verir . Sadece çizgi
int& foo();
kendi başına hem derler hem de sorunsuz çalışır.
Bu kod ne anlama geliyor? Bir fonksiyon çağrısına nasıl değer atayabilirsiniz ve bu neden bir rvalue değildir?