/*************************************************************************************************************************************/ /* */ /* T E S T D E L A S E M A N T I Q U E D E ' #elif ' : */ /* */ /* */ /* Nota : */ /* */ /* Ceci est apparu aux environs du 20210903174213 */ /* a cause de 'v /usr/include/regex$h # elif 199901L' */ /* sur '$LACT1B'. Or 'v $xcpp/beau_cpp$c' ne connait */ /* pas la directive '#elif'... */ /* */ /* Introduire '#elif' dans 'v $xcpp/beau_cpp$c' */ /* semble impossible. Une (mauvaise) solution pourrait */ /* etre de modifier 'v /usr/include/regex$h'... */ /* */ /* Voici donc 'v /usr/include/regex$h' tel qu'il */ /* est a cette date : */ /* */ /* #ifndef _Restrict_ */ /* # if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) */ /* # define _Restrict_ __restrict */ /* # elif 199901L <= __STDC_VERSION__ || defined restrict */ /* # define _Restrict_ restrict */ /* # else */ /* # define _Restrict_ */ /* # endif */ /* #endif */ /* */ /* et voici comment il pourrait etre reecrit (voir */ /* 'v $xtKp/elif.01$c' a ce propos en ce qui concerne */ /* la semantique de '#elif'...) : */ /* */ /* #ifndef _Restrict_ */ /* # if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) */ /* # define _Restrict_ __restrict */ /* # else */ /* # if 199901L <= __STDC_VERSION__ || defined restrict */ /* # define _Restrict_ restrict */ /* # else */ /* # define _Restrict_ */ /* # endif */ /* # endif */ /* #endif */ /* */ /* En ce qui concerne '_Restrict_arr_', voici la */ /* version originale : */ /* */ /* #ifndef _Restrict_arr_ /* # ifdef __restrict_arr /* # define _Restrict_arr_ __restrict_arr /* # elif ((199901L <= __STDC_VERSION__ \ */ /* # || 3 < __GNUC__ + (1 <= __GNUC_MINOR__) \ */ /* # ) && !defined __GNUG__) */ /* # define _Restrict_arr_ _Restrict_ */ /* # else */ /* # define _Restrict_arr_ */ /* # endif */ /* #endif */ /* */ /* et la version corrigee (sans '#elif') : */ /* */ /* #ifndef _Restrict_arr_ */ /* # ifdef __restrict_arr */ /* # define _Restrict_arr_ __restrict_arr */ /* # else */ /* # if ((199901L <= __STDC_VERSION__ \ */ /* # || 3 < __GNUC__ + (1 <= __GNUC_MINOR__) \ */ /* # ) && !defined __GNUG__) */ /* # define _Restrict_arr_ _Restrict_ */ /* # else */ /* # define _Restrict_arr_ */ /* # endif */ /* # endif */ /* #endif */ /* */ /* */ /* Author of '$xtKp/elif.01$c' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20210903174213). */ /* */ /*************************************************************************************************************************************/ #define _x1 #define _y1 #define z1 /* A priori seul 'z1' est defini. Pour definir 'x1' et/ou 'y1', il suffit de supprimer */ /* le "_" qui les precede... */ #define _x2 #define _y2 #define z2 /* A priori seul 'z2' est defini. Pour definir 'x2' et/ou 'y2', il suffit de supprimer */ /* le "_" qui les precede... */ /*************************************************************************************************************************************/ /* */ /* T E S T {#if,#else,#endif} " P R O P R E " : */ /* */ /*************************************************************************************************************************************/ #if defined x1 # message "X1 def" #else # if defined y1 # message "Y1 def" # else # if defined z1 # message "Z1 def" # else # message "Z1 undef" # endif # endif #endif /*************************************************************************************************************************************/ /* */ /* T E S T A V E C U N {#elif} : */ /* */ /*************************************************************************************************************************************/ #if defined x2 # message "X2 def" #else # if defined y2 # message "Y2 def" # elif defined z2 # message "Z2 def" # else # message "Z2 undef" # endif #endif