// template inline T lowercase(T c1) { return ( c1 & 0xffffff00 ) ? c1 : convTable[c1]; } inline char lowercase(char c1) { return convTable[(unsigned char)c1]; } inline signed char lowercase(signed char c1) { return convTable[(unsigned char)c1]; } inline unsigned char lowercase(unsigned char c1) { return convTable[c1]; } // template inline T lowercase(T c1) { return ( c1 & 0xffffff00 ) ? c1 : convTable[c1]; } template<> inline char lowercase(char c1) { return convTable[(unsigned char)c1]; } template<> inline signed char lowercase(signed char c1) { return convTable[(unsigned char)c1]; } template<> inline unsigned char lowercase(unsigned char c1) { return convTable[c1]; }