Cause:
References should be instantiated to refer to a valid object or a function. When rvalues are used to initialize references, in certain cases compiler creates temporary objects and bind them to references . Temporaries are destroyed at the end of the full expression in which it was created. So it is dangerous to initialize references with temporary.
Example:
