namespace std {
class locale;
template <class Facet> const Facet& use_facet(const locale&);
template <class Facet> bool has_facet(const locale&) noexcept;
template <class charT> bool isspace (charT c, const locale& loc);
template <class charT> bool isprint (charT c, const locale& loc);
template <class charT> bool iscntrl (charT c, const locale& loc);
template <class charT> bool isupper (charT c, const locale& loc);
template <class charT> bool islower (charT c, const locale& loc);
template <class charT> bool isalpha (charT c, const locale& loc);
template <class charT> bool isdigit (charT c, const locale& loc);
template <class charT> bool ispunct (charT c, const locale& loc);
template <class charT> bool isxdigit(charT c, const locale& loc);
template <class charT> bool isalnum (charT c, const locale& loc);
template <class charT> bool isgraph (charT c, const locale& loc);
template <class charT> bool isblank (charT c, const locale& loc);
template <class charT> charT toupper(charT c, const locale& loc);
template <class charT> charT tolower(charT c, const locale& loc);
class ctype_base;
template <class charT> class ctype;
template <> class ctype<char>; template <class charT> class ctype_byname;
class codecvt_base;
template <class internT, class externT, class stateT> class codecvt;
template <class internT, class externT, class stateT> class codecvt_byname;
template <class charT, class InputIterator = istreambuf_iterator<charT>>
class num_get;
template <class charT, class OutputIterator = ostreambuf_iterator<charT>>
class num_put;
template <class charT>
class numpunct;
template <class charT>
class numpunct_byname;
template <class charT> class collate;
template <class charT> class collate_byname;
class time_base;
template <class charT, class InputIterator = istreambuf_iterator<charT>>
class time_get;
template <class charT, class InputIterator = istreambuf_iterator<charT>>
class time_get_byname;
template <class charT, class OutputIterator = ostreambuf_iterator<charT>>
class time_put;
template <class charT, class OutputIterator = ostreambuf_iterator<charT>>
class time_put_byname;
class money_base;
template <class charT, class InputIterator = istreambuf_iterator<charT>>
class money_get;
template <class charT, class OutputIterator = ostreambuf_iterator<charT>>
class money_put;
template <class charT, bool Intl = false>
class moneypunct;
template <class charT, bool Intl = false>
class moneypunct_byname;
class messages_base;
template <class charT> class messages;
template <class charT> class messages_byname;
}