template c++
Especialización de plantillas con plantillas variad. (1)
La sintaxis es correcta (afaik y clang ++ la acepta), pero es probable que su compilador no esté actualizado aún.
Si usa gcc, su soporte de plantillas variadas es bastante incompleto, e incluso las versiones svn muy recientes todavía no admiten la especialización (así es como se usa la tecnología de vanguardia, y lamentablemente gcc implementó solo una plantilla variada incompleta muy temprana propuesta y desde entonces no se mantuvo mucho, mientras que el clang comenzó bastante tarde, pero se completó bastante)
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 un error: template-id ''doStuff<1u, int, bool>'' for ''void doStuff(int, bool)'' does not match any template declaration
pero claramente coincide con la primera declaración con argumentos variad de la plantilla.
¿Cómo especializar las plantillas variad?