Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wywołanie kodu ze stringa.

Ostatnio zmodyfikowano 2012-02-09 16:04
Autor Wiadomość
jsc
» 2012-02-08 10:26:15
Ja jeśli chcę osiągnąć podobny efekt organizacji kodu stosuję następującą konstrukcję:
C/C++
#include <map>

map < string, bool( * )( int a, int b ) > mapaKodu;

void inicjuj( void )
{
    mapaKodu[ "==" ] = equal;
    mapaKodu[ "!=" ] = other;
    mapaKodu[ "<=" ] = lestOrEqual;
}

bool equal( int, int );
.
.
.
int main()
{
    .
    .
    .
}

bool equal( int a, int b )
{
    returna a == b;
}

.
.
.
P-50357
npHard
» 2012-02-08 10:48:06
Czyli z tego co rozumiem chcesz z poziomu programu uruchamiać pewnego rodzaju skrypty, które nie są znane w czasie kompilacji? Tak prosto się nie da tego zrobić, ale się da. Sprecyzuj co dokładnie chcesz osiągnąć.
P-50359
jsc
» 2012-02-08 13:54:39
Czyli z tego co rozumiem chcesz z poziomu programu uruchamiać pewnego rodzaju skrypty, które nie są znane w czasie kompilacji? Tak prosto się nie da tego zrobić, ale się da.

Trzeba się trochę nakombinować z wskaźnikami na funkcje, albo z funktorami.
P-50367
pekfos
» 2012-02-08 15:24:33
// ps naprawdę powinni coś takiego zrobić
Nie powinni i nie zrobią. Takie mechanizmy funkcjonują tylko i wyłącznie w językach skryptowych (np javascript). Jakbyś miał jakąś wiedzę o strukturze takiego skompilowanego programu, wiedziałbyś, że się nie opłaca czegoś takiego robić. Stworzyło by to tylko więcej problemów.

Jeśli potrzebujesz takiego mechanizmu w swoim projekcie, to znaczy, że albo źle zaprojektowałeś kod, albo nie posiadasz wystarczającej wiedzy by zrealizować ten projekt.

Można zrobić namiastkę takiego mechanizmu tworząc w programie interpreter języka C++. Jak chcesz do swojego małego projektu wrzucić pół kompilatora, to powodzenia.

Jak już uznasz, że się nie da, to zamknij temat. Jest już chyba wyczerpany..
P-50375
aimo6
Temat założony przez niniejszego użytkownika
» 2012-02-09 16:04:52
No niestety nie da się.
Chociaż prawie udało mi się zrobić to co chciałem w trochę trudniejszy sposób.

Co do ost. komentarza :
tak nie mam wystarczającej wiedzy. Ciągle się uczę i chciałem zacząć mój "mały" projekt(może kiedyś się rozrośnie)

Dzięki wszystkim za pomoc.
P-50411
1 « 2 »
Poprzednia strona Strona 2 z 2