Estaba tratando de resolver un problema, pero encontré una solución diferente. Sin embargo por curiosidad gustaría saber si la siguiente es posible:C++ plantilla especializada hereda de la versión no especializada
template<class> struct S;
template< > struct S<Foo> : struct<Foo> {};
me gustaría ser capaz de heredar la estructura no especializado desde especializado struct.the ejemplo anterior no funciona porque la estructura heredada es la especializada, lo que lleva a la recursión infinita.
Una posible solución fue agregar un segundo parámetro de plantilla, por ejemplo bool especializado, de manera que el valor predeterminado sea falso y la plantilla especializada tenga ese parámetro verdadero. Sin embargo, eso hace las cosas un poco complicadas ya que la instanciación necesita especificar un parámetro adicional.
¿Hay alguna otra forma de implementar lo anterior?
el problema original era implementar una matriz de matrices, donde la matriz misma puede tener operadores adicionales, dependiendo de si las matrices constituyentes tienen esos operadores. Espero que tenga sentido. al mismo tiempo, diferentes matrices especializadas deben ser de la misma clase base y, al mismo tiempo, conservar el mismo nombre, aunque con diferentes parámetros de plantilla. He pensado que podría haber una forma de hacerlo usando enable_if y escriba rasgos
La primera contra pregunta es ¿qué tipo de problema está tratando de resolver con esto? –