template <class charT>
struct is_char_class
: public std::unary_function<charT, bool>
{
private:
const std::ctype<charT>* ct;
std::ctype_base::mask char_class;
public:
is_char_class(const std::ctype<charT>& f,
std::ctype_base::mask m)
: ct(&f),
char_class(m)
{ }
is_char_class(std::locale L,
std::ctype_base::mask m)
: ct(&std::use_facet<std::ctype<charT> >(L)),
char_class(m)
{ }
bool operator()(charT c) const {
return ct->is(char_class, c);
}
};
End of Listing