Digamos que tengo que tratar ushort
y uint
de alguna manera, pero string
de manera diferente. Supongo que necesito una plantilla especializada para string
y otra para ushort
y uint
. ¿Lo es?Múltiples tipos en una plantilla D especializada
// for most
void func(T)(T var) { ... }
// for uint and ushort
void func(T: uint, ushort)(T var) { ... }
Esa es la idea, aunque el código no se puede compilar. Es válido o muy malo?
Tenga en cuenta que en el primer ejemplo usa restricciones de plantilla, y el segundo es un tiempo de compilación condicional, 'static if'. El primero se debe usar si hay tipos que la plantilla no maneja, el segundo se puede usar con el primero o cuando se maneja todo. –