¿El operador Unary + realiza conversiones de tipo?

Hasta ahora estaba creyendo que no hay uso de unario+ operador.

Pero luego me encontré con el siguiente ejemplo:

char ch;
short sh;
int i;

printf("%d %d %d",sizeof(ch),sizeof(sh),sizeof(i)); // output: 1 2 4

printf("%d %d %d",sizeof(+ch),sizeof(+sh),sizeof(i)); // output: 4 4 4

Significa+ está haciendo conversión de tipo aquí?

Porque se comporta igual que seguir

printf("%d %d %d",sizeof((int)ch),sizeof((int)sh),sizeof(i)); // output: 4 4 4

Esto me obliga a pensar+ está haciendo conversión de tipo.

Pero luego lo pruebodouble

double f;
printf("%d %d",sizeof(+f),sizeof((int)f),sizeof(f));  // output: 8 4 8

Esto me obliga a repensar sobre unario+ operador.

Entonces mi segunda pregunta es: ¿unario+ el operador tiene un efecto especial ensizeof ¿operador?

Respuestas a la pregunta(4)

Su respuesta a la pregunta