Estoy generando código C++ a partir de otro código de un lenguaje que estoy desarrollando. La funciones las estoy implementando rollo bash.
Sabeis como puedo declarar los argumentos? Estoy forzado a hacer type inference en el preprocesador/compilador y declarar un template por cada llamada que utilice un tipo distinto (la única solución que se me ocurrió hasta el momento) o conoceis alguna alternativa más sencilla?
CÓDIGO A TRANSPILAR/COMPILAR:
x = "Hello World";
showHelloWorld() {
out($1);
return 6 * 7;
}
showHelloWorld(x);
x = 8;
CÓDIGO QUE GENERO:
#include <string>
using namespace std;
auto showHelloWorld($1);
int main() {
auto x = "Hello World" ;
showHelloWorld ( x ) ;
x = 8 ;
return 0;
}
auto showHelloWorld($1) {
cout << $1 << endl;
return 6 * 7 ;
}
Lo que necesito hacer es asignarle un tipo (para que no de error) a los $1, $2, $3... y al $. Este último es un array con todos los argumentos dentro como en bash.
Hay que tener en cuenta que cada llamada a la función puede tener el mismo argumento con distinto tipo, ejemplo:
imprimir($1) {
cout << $1 << endl;
}
int main() {
imprimir("hola");
imprimir(7);
// ...
}
Se os ocurre alguna solución sencilla?