Hej, Jag tror inte du behöver skapa dem i runtime. Det finns väl några verktyg för detta, även om jag aldrig använt något för C++. Det första enklaste är att man får väldigt mycket gjort med templates, en annan väldigt enkel variant är att ta in ett scriptspråk. Hej,Skapa nya funktioner i runtime
Jag undrar om det är möjligt att skapa nya funktioner i runtime?
Om jag tex har två arrayer med värdena:
{a,b} och {c,d} där a-d är pekare så vill jag skapa functionerna:
void func1()
{
*a = *c + *d;
}
void func2()
{
*a = *d + *e;
}
void func3()
{
*b = *c + *d;
}
void func4()
{
*b = *d + *e;
}
Anledningen till att jag behöver skapa funktionerna i runtime är jag innan inte vet vilka eller hur många pekare som kommer finnas i arrayerna. Jag vill efter att funktionerna är skapade lägga alla funktioners pekare i en array där jag heller inte vill ha några parametrar, vilket gör att jag inte kan skapa en funktion (tex. void func4(int* a, int* b, int* c){*a = *b + *c;}) som hanterar problemet
Någon som har en idé?
/FredrikSv: Skapa nya funktioner i runtime
Om vi säger så här:
Hur ska du anropa funktionerna? Du kan ju knappast skriva func1 och uppåt i kod om funktionerna inte finns compile-time?
Alltså _måste_ de anropas via någon form av array etc. som du säger, och då bör du nog beskriva vad det är du försöker göra istället.
Spontan tanke är istället:
func(i, j, k, arr1, arr2)
arr1(i) = arr2(j) + arr2(k)
Och sen har du en överlagrad funktion, typ:
func(index, arr1, arr2)
k = index % arr2.length
j = (index / arr2.length) % arr1.length
i = index / arr2.length) / arr1.length
func(i,j,k,arr1,arr2)
Alternativt motsvarande grej med funktionsobjekt.Sv:Skapa nya funktioner i runtime
Tack för dit svar! Verkar som jag tänkt lite fel från börjar. Tror att jag kan få till det genom att använda den metod du beskrev.
Tack!