to say it's "fully" correct, you should show us the definition of A ...
anyway, supposing that A is non-explictly constructible from an int and that it is also copy constructible, it's correct.
if you have doubts about the line "const A& a = Fun();", note that a temporary bound to a const reference will survive up to the end of the scope in which the reference is defined; so, again, it's ok.
Bookmarks