#include <iostream>

// Invalid example:
void foo(int& x)
{
    std::cout << x << std::endl;
}

int main()
{
    // not legal; can't bind a temporary to a non-const reference (because what if foo() changed it?)
    foo(7 * 6);
}