Tengo dos programas de C++ que necesitan tener un mapa type -> int
que se conoce en tiempo de compilación e igual entre los dos programas. Además, me gustaría asegurarme automáticamente en tiempo de compilación de que el mapa es uno a uno. ¿Cómo resolverías eso? (C++ 0x-extensiones están permitidas). La primera parte es fácil: Comparte unescriba a la asignación int
template < typename T > struct map;
template <> struct map <...> { enum { val = ...; }; };
entre los programas. (La segunda parte significa que no quiero definir accidentalmente el mismo val
para dos tipos diferentes en algún lugar de mis programas.)
¿Puedo preguntar para qué sirve este mapeo? – sellibitze
posible duplicado de [Tipo de conversión de metaprograma de plantilla a número único] (http://stackoverflow.com/questions/1708458/template-metaprogram-converting-type-to-unique-number) – kennytm
El mapa se usará para comunicar datos arbitrarios entre un emisor y un programa receptor (esa es también la razón por la cual esta pregunta no es duplicada; se trata de dos programas que necesitan compartir el mismo mapa). – Thomas