Cerința
Folosind doar directive #define, construiți o funcție CHECK, asemenea funcției IIF din SQL, care are 3 parametrii:
- Primul parametru poate fi
0sau1. - Al doilea parametru poate fi de orice tip. Funcția va returna acest parametru dacă primul parametru este
1. - Al treilea parametru poate fi de orice tip. Funcția va returna acest parametru dacă primul parametru este
0.
Funcția va fi folosită astfel: (în acest caz funcția returnează “but this will”)
std::cout<<CHECK(0, "this will not be returned", "but this will");
Exemplu:
Apelare
CHECK(0, "this is ONE", 10)
Valoare returnată
10
Important
Soluţia propusă va conţine doar secvența de directive #define. ORICE APARȚIE A CUVÂNTULUI if SE VA DEPUNCTA. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei. Exemplu:
#define FOO(x) Bar ## x #define Barfoo "FOOBAR"