Piccolo problema

da una funzione devo far ritornare un valore che puo essere sia signed che unsigned

come posso fare?

e poi ho problemi con la coercizione nella funzione, devo poter trasformare un signed in unsigned e viceversa ma soluzioni tipo '(unsigned int) intero' non funzionano