Jak ocenić zagnieżdżone makro preprocesora

powiedzmy, że chcę wybrać zachowanie określonej dyrektywy preprocesora oceniającej w czasie kompilacji konkatenację stałego ciągu i wynik innego makra.

#define CASE1 text1
#define CASE2 text2
#define CASE3 text3
#define SCENARIO 3
/** the following won't work - for examplification purposes only**/
#define FUNCTION CASE##SCENARIO

/** whenever I write FUNCTION, I expect to see text3 **/

Trudno mi myśleć o realnym rozwiązaniu, ponieważ preprocesor jest bestią jednoprzebiegową. Czy to możliwe?

questionAnswers(1)

yourAnswerToTheQuestion