template <size_t size, typename ...Params>
void doStuff(Params...) {
}
template <>
void doStuff<size_t(1), int, bool>(int, bool) {
}
int main(int, char**) {
doStuff<1,int,bool>(1, false);
return 0;
}
Esto no se compila, la segunda declaración doStuff me da error: template-id ‘doStuff<1u, int, bool>’ for ‘void doStuff(int, bool)’ does not match any template declaration
pero coincide claramente con la primera declaración con argumentos de plantilla variadic.Especialización de plantilla con plantillas variadic
¿Cómo especializar plantillas variadic?
Uso gcc 4.5.2. Gracias por su respuesta (ahora estoy usando sobrecarga de plantilla). – coyotte508
lo mismo vale para 4.6.1, es decir, no es compatible con esa versión tampoco ... – Nim
Como alternativa, puede ajustar la función en una plantilla '<..> struct Do {static void Stuff (..) {}};'. –