Well, to be even fairer, it is quite unlikely that you want an overload like this in the first place. There are a multitude of ways to resolve the ambiguity. Removing the copy constructor by making it private is yet another way. But causing the ambiguity in the first place makes the code seem funky.
Overloaded functions are usually meant to do similar things with different inputs. Literally the only difference between the two functions is whether you copy arguments or not, and it would be better to just decide if you do or not and remove one function or the other. For example if copying is an inexpensive process, (and IMHO it usually is, unless it is an entire data structure instance) then by-value semantics conveys every advantage that constant reference semantics will.