He estado jugando recientemente con el lenguaje D y tengo una pregunta rápida sobre las plantillas.Algunas preguntas de la plantilla D
estoy insertar caracteres y cadenas en una cadena existente en el código y se acercó con esta función:
string insert(T)(string s1, T s2, uint position) {
return s1[0 .. position] ~ s2 ~ s1[position .. $];
}
Ahora, tengo varias preguntas.
puedo limitar los tipos permitidos para el argumento s2 (sólo quiero char, wchar, dchar, etc., y sus respectivos valores de la matriz)?
¿Hay alguna manera de definir la plantilla para que se sepa automáticamente si la posición arg es 0? Algo como esto (que no se compila, pero da la idea general):
string insert(T)(string s1, T s2, uint position) { static if (position == 0) return "" ~ s2 ~ s1; else return s1[0 .. position] ~ s2 ~ s1[position .. $]; }
Gracias
StackOverflow está pensando que su segundo bloque de código es un nuevo párrafo para el punto 2. –