¿Cómo se puede obtener el tamaño de un tipo para el que se tiene una codificación?

Dado un Objective-C tipotype, se puede obtener el codificación encoding y tamañosize del tipo fácilmente:

const char *encoding = @encode(type);
size_t size = sizeof(type);

Poner un poco diferente, tenemos asignaciones

@encode: type_t -> const char *
sizeof:  type_t -> size_t

Esto plantea dos preguntas:

(1) Supongamos que, en lugar de tener un tipo, solo tenemos una codificación. Sería bueno obtener un mapeo

sizeofencodedtype: const char * -> size_t

que por cada type_t type tenemos ese

sizeofencodedtype(@encode(type)) = sizeof(type)

¿Ya existe tal función? Si no, ¿cómo podría uno construir uno?

(2) Idealmente podríamos invertir el@codifica mapeo para hacer un mapeo

decode: const char * -> type_t

pero esto no parece ser posible ya que type_t no es un tipo C real. Supongo que podría esperar a@descodifica para agregar al lenguaje, pero eso no es muy realista o urgente. ¿Pero no debería ser posible crear una instancia de un tipo en tiempo de ejecución utilizando su codificación?

Referencias: Objective-C Runtime Programming Guide - Type Encodings

Respuestas a la pregunta(1)

Su respuesta a la pregunta