Lehet-e egyedi statement-t írni C++11 nyelven?
Ilyesmire gondolok:
trap(valami kifejezés) {
utasítás1;
utasítás2;
...
}
És a trap utasítást szeretném deklarálni úgy, hogyha a kifejezés valamilyen értékeket ad vissza, akkor a blokkjához meghatározott utasítások működjenek.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Ehhez miért nem elég egy sima if? :)
Amúgy meg ahhoz hogy magát a nyelvet módosítsd, saját fordítót is kéne csinálnod, ami nyilván nem 2 perc.
Közben találtam egy kis workaroundot templattel valahogy így:
trap<type& t, value& v>(std::function<void>);
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Templatetel futásidejű döntést nem tudsz csinálni. Nem is értem pontosan, mit szeretnél, egyelőre switchnek tűnik, az persze csak integrális típusokra működik.
Amúgy nem tudsz saját statementet csinálni.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Makrót tudsz csinálni. Assemblerhez pl. láttam már olyan makrógyűjteményt, amivel for ciklust, és egyéb összetett szerkezetet lehetett csinálni. :))
Én a helyedben a makróknak néznék utána.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Ez igaz. Olyasmire gondoltam, mint pl. a wxWidgets-et használó progikban az "IMPLEMENT_APP(appClass)", ami egy sorban magába foglalja kb. a teljes main loop-ot, meg a user osztályokon kívül a progi magját. :)
De ettől ez még persze nem lesz statement, viszont segíthet. Tényleg a céltól függ.
Respect. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!