なんとなく思いついたもの
class WhiteSpace {}; inline bool operator==( const char lhs, const WhiteSpace& rhs ) { return ( lhs == ' ' ) || ( lhs == '\t' ) || ( lhs == '\n' ) || ( lhs == '\r' ); // etc... } // usage // if( ch == WhiteSpace() ) { ... }
あまりきれいじゃないですが、多分こういうのもありということで。なんかboost::spiritあたりがこういうことしてるかも。いや、多分もっと変態的な実装なんだろうなぁ。