que tienen un conjunto de tipos relacionados con una relación uno-a-uno, por ejemplo:dos tipos en tiempo de compilación
TypeA ---> Type1
TypeB ---> Type2
TypeC ---> Type3
Sé que estas relación en tiempo de compilación.
entonces, tengo una clase de plantilla que depende de estos dos tipos:
template<class T1,class T2>
class MyClass
{
T1 foo;
T2 bar;
};
Ahora, el usuario de la biblioteca de mi va a escribir algo como:
MyClass<TypeA,Type1> x;
Esto es un inconveniente porque no hay una dependencia entre los dos tipos y debería ser suficiente para que el usuario especifique solo el primer tipo.
Además, la mezcla de los dos tipos no debería ser posible:
MyClass<TypeA,Type2> y; //it should not compile
no estoy muy familiarizado con la programación meta plantilla, me dio la impresión de que esta tarea es factible, pero puedo estar equivocado.
El número de tipos involucrados es grande, sin embargo, me complace ejecutar un script para generar el código si es necesario.
¿Sabes si es posible o estoy perdiendo el tiempo? ¿Tiene alguna idea para señalarme en la dirección correcta?
hizo algunas correcciones. Vea si es apropiado. (Además, ¿realmente necesitas un nombre tan largo como 'TypeLetter2TypeDigit'? En mi humilde opinión, algo como 'TypeMap' es suficiente.) – iammilind
@iammilind. Gracias. El nombre largo es necesario para mostrar lo que quiero. Usted u OP puede usar cualquier nombre. –