esta pregunta está relacionada con C++¿Son posibles los typedef condicionales en C++?
hay una biblioteca que declara una clase llamada Solver < TS, FS>. Solver es un miembro de otra clase de dominio (escrito por mí)
Ahora hay muchos dominios que tienen una "región int" miembro de
lo que quiero hacer es en función del valor de la región, quiero hacer que el solucionador acepte diferentes argumentos para TS y FS. Estaba pensando en algo a lo largo de la línea
template<int region>
struct Decider
{
if(region==1)
{
typedef TSA TS;
typedef FSA FS;
}
else
if(region==2)
{
typedef TSB TS;
typedef FSB FS;
}
}
y luego usarlo como
Decider<region>::TS
Decider<region>::FS
Sin embargo, aquí debido al alcance del caso, supongo que la estructura es inútil. Sin embargo, no puedo pensar en un mejor método para hacer esto. ¿Alguna sugerencia?
Todos los diferentes TS y FS tienen la misma interfaz. Entonces no tengo que preocuparme por el código interno.
Debe tenerse en cuenta que el argumento de la plantilla debe ser una constante en tiempo de compilación. Como el OP dijo que quería usar una variable miembro 'int region' como argumento, me temo que esta solución no satisfará sus necesidades ... (Es posible que haya entendido mal la pregunta, por supuesto) –
sí ... sería preferible tenerlo como región int pero supongo que puedo administrarlo con una constante de tiempo de compilación tooo. simplemente hará que el código sea más largo, supongo ....... –
solo para asegurarme de que puedo hacer esto ¿no? 'usando Decider :: TS; Solver solver(); ' –