You are not assigning 'an object to a reference'. You are calling the
copy assignment operator[
^], that, for a some reason (unknown to me) is unavailable (that is the compiler cannot generate for you).
If you need to 'assign a reference' then you should use a pointer (and, accordingly, change a bit your code).