Yes: "Thinking in C++, 2nd ed. Volume 1" by Bruce Eckel, see section: Operator Overloading, '+' operator; see also temporary objects
Now a little example:

struct TheClass
{
....
TheClass(int i);
};

void Func(TheClass& );

void main()
{
int i = 5;
Func(i); //The temporary object which is created here is const
//but the function takes non-const reference
//Some compilers generate warning, some do not
//accept it
}