Wywołanie kodu ze stringa.
Ostatnio zmodyfikowano 2012-02-09 16:04
jsc |
» 2012-02-08 10:26:15 Ja jeśli chcę osiągnąć podobny efekt organizacji kodu stosuję następującą konstrukcję: #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; }
. . .
|
|
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ąć. |
|
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. |
|
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.. |
|
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. |
|
1 « 2 » |