String overloads not working properly

My unsigned char casting is the same solution as posted for this problem

although this is the a further issue with the move operator

Both of these should be fixed so you can do
// A->B->A method here used to prevent compiler from optimizing.
String myString;
String temp;
temp = String(13,DEC);
myString = temp;