Что означает int & foo () в C ++?
Во время чтенияэто объяснение на lvalues и rvalues эти строки кода торчат мне:
int& foo();
foo() = 42; // OK, foo() is an lvalue
Я пробовал это в g ++, но компилятор говорит "неопределенная ссылка на foo ()". Если я добавлю
int foo()
{
return 2;
}
int main()
{
int& foo();
foo() = 42;
}
Компилируется нормально, но при запускеошибка сегментации, Просто линия
int& foo();
сам компилируется и запускается без проблем.
Что означает этот код? Как вы можете назначить значение для вызова функции, и почему это не rvalue?