Wywołanie kodu ze stringa.
Ostatnio zmodyfikowano 2012-02-09 16:04
aimo6 Temat założony przez niniejszego użytkownika |
Wywołanie kodu ze stringa. » 2012-02-07 20:29:38 Mam taki mały problem.Ostatnio zastanawiałem się nad tym czy da się zrobić coś takiego: tworzę sobie klasę . w pewnej funkcji chciałbym aby polecenia zapisane w stringu można było uzyskać w postaci ... co ja będę tłumaczył i tak nikt nie zrozumie: std::string polecenia = "if(a==b)" polecenia
mam nadzieje, że ktoś zrozumiał o co chodzi. W ten sposób oczywiście nie zadziała i tu moje pytanie jak to zrobić inaczej? |
|
pekfos |
» 2012-02-07 20:30:50 Wpisz coś w nazwę tematu. Było (nie da się). |
|
SeaMonster131 |
» 2012-02-07 20:37:49 Może tak template < class Arg > bool polecenie( Arg a, Arg b ) { if( a == b ) return true; return false; }
? |
|
pekfos |
» 2012-02-07 20:40:17 Już prędzej tak #define CMD1 if(a==b)
CMD1; Ale jemu pewnie chodzi o to by w czasie działania programu zmieniać sobie kod. |
|
aimo6 Temat założony przez niniejszego użytkownika |
» 2012-02-07 20:44:32 sry w pośpiechu zapomnialem
Nie do końca o to chodziło . W stringu miały być dowolne instrukcje to z if to był tylko przykład.
Myślałem też nad template bo gdzieś na tej stornie znalazłem, że da się w taki sposób określić typ zmiennej . I od tego czasu cały czas się na tym zastanawiam . Jeszcze niezbyt dobrze władam template i klasami więc chcialem się dowiedzieć czy komuś może się to już udało.
// @up coś w tym rodzaju |
|
pekfos |
» 2012-02-07 20:48:00 Jeśli te instrukcje są znane w czasie kompilacji, to zostaje tylko makro. Innego sposobu nie ma. |
|
RazzorFlame |
» 2012-02-07 21:13:10 Mozna zrobic funkcje coś w stylu instrukcji if
enum NaszEnum { EQUAL, OTHER, LESSOREQUAL, };
NaszEnum jezeli( int a, char oper[ 2 ], int b ) { if( oper == "==" ) { if( a == b ) return EQUAL; } }
|
|
aimo6 Temat założony przez niniejszego użytkownika |
» 2012-02-08 09:46:30 ehh... chciałem zrobić trochę elastyczniejszy kod . pokombinuje jeszcze z template może coś znajdę . Jeżeli jakimś cudem się uda wrzucę tutaj kod.
// ps naprawdę powinni coś takiego zrobić |
|
« 1 » 2 |