Что означает «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() =...