/********************************************************** switch構文もどきヘッダファイル ver 1.00試作 **********************************************************/ #ifndef SWITCH_100a #define SWITCH_100a //#define SWITCH_NO_USE_DEFAULT #if !defined(SWITCH_NO_USE_DEFAULT) #define DEFAULT_SET \ static bool def(true); #define DEFAULT_USE \ def=false; #define DEFAULT_SYS \ }if(def){ #define S_END_SYS \ }def=true; #else #define DEFAULT_SET #define DEFAULT_USE #define DEFAULT_SYS \ }if(false){ #define S_END_SYS \ } #endif #define SWITCH_SYS(type, condition) \ {static type& Switch_sys=condition; \ DEFAULT_SET //通常CASE #define CASE_SYS(pattern) \ }if((pattern)==Switch_sys){ \ DEFAULT_USE //範囲指定CASE #define IN_CASE_SYS(pattern1, pattern2, L_sign, R_sign) \ }if(((pattern1) <##L_sign Switch_sys)&&((Switch_sys) <##R_sign pattern2)){ \ DEFAULT_USE #define SWITCH(type, condition) \ SWITCH_SYS(type, condition) #define CASE(pattern) \ CASE_SYS(pattern) #define IN_CASE(pattern1,pattern2, L_sign, R_sign) \ IN_CASE_SYS(pattern1,pattern2, L_sign, R_sign) #define DEFAULT \ DEFAULT_SYS #define S_END \ S_END_SYS #endif