C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- æ ååºå¤´æä»¶ <ctime>
- æ ååºå¤´æä»¶ <cstring>
- æ ååºå¤´æä»¶ <set>
- æ ååºå¤´æä»¶ <cctype>
- æ ååºå¤´æä»¶ <cwctype>
- æ ååºå¤´æä»¶ <utility>
- æ ååºå¤´æä»¶ <queue>
- æ ååºå¤´æä»¶ <complex>
- æ ååºå¤´æä»¶ <iterator>
- æ ååºå¤´æä»¶ <algorithm>
- æ ååºå¤´æä»¶ <valarray>
- æ ååºå¤´æä»¶ <numeric>
- æ ååºå¤´æä»¶ <cmath>
- æ ååºå¤´æä»¶ <iosfwd>
- æ ååºå¤´æä»¶ <ios>
- æ ååºå¤´æä»¶ <iomanip>
- æ ååºå¤´æä»¶ <streambuf>
- æ ååºå¤´æä»¶ <istream>
- æ ååºå¤´æä»¶ <ostream>
- æ ååºå¤´æä»¶ <iostream>
- æ ååºå¤´æä»¶ <sstream>
- æ ååºå¤´æä»¶ <clocale>
- æ ååºå¤´æä»¶ <vector>
- æ ååºå¤´æä»¶ <deque>
- æ ååºå¤´æä»¶ <list>
- æ ååºå¤´æä»¶ <map>
- æ ååºå¤´æä»¶ <cwchar>
- æ ååºå¤´æä»¶ <locale>
- æ ååºå¤´æä»¶ <codecvt>
- æ ååºå¤´æä»¶ <bitset>
- æ ååºå¤´æä»¶ <functional>
- æ ååºå¤´æä»¶ <stdexcept>
- æ ååºå¤´æä»¶ <csignal>
- æ ååºå¤´æä»¶ <csetjmp>
- æ ååºå¤´æä»¶ <stack>
- æ ååºå¤´æä»¶ <cassert>
- æ ååºå¤´æä»¶ <cerrno>
- æ ååºå¤´æä»¶ <memory>
- æ ååºå¤´æä»¶ <typeindex>
- æ ååºå¤´æä»¶ <type_traits>
- æ ååºå¤´æä»¶ <chrono>
- æ ååºå¤´æä»¶ <initializer_list>
- æ ååºå¤´æä»¶ <tuple>
- æ ååºå¤´æä»¶ <scoped_allocator>
- æ ååºå¤´æä»¶ <cstdint>
- æ ååºå¤´æä»¶ <cinttypes>
- æ ååºå¤´æä»¶ <system_error>
- æ ååºå¤´æä»¶ <cuchar>
- æ ååºå¤´æä»¶ <array>
- æ ååºå¤´æä»¶ <forward_list>
- æ ååºå¤´æä»¶ <unordered_set>
- æ ååºå¤´æä»¶ <unordered_map>
- æ ååºå¤´æä»¶ <random>
- æ ååºå¤´æä»¶ <ratio>
- æ ååºå¤´æä»¶ <cfenv>
- æ ååºå¤´æä»¶ <regex>
- æ ååºå¤´æä»¶ <atomic>
- æ ååºå¤´æä»¶ <thread>
- æ ååºå¤´æä»¶ <mutex>
- æ ååºå¤´æä»¶ <future>
- æ ååºå¤´æä»¶ <condition_variable>
- æ ååºå¤´æä»¶ <any>
- æ ååºå¤´æä»¶ <optional>
- æ ååºå¤´æä»¶ <variant>
- æ ååºå¤´æä»¶ <memory_resource>
- æ ååºå¤´æä»¶ <string_view>
- æ ååºå¤´æä»¶ <charconv>
- æ ååºå¤´æä»¶ <execution>
- æ ååºå¤´æä»¶ <filesystem>
- æ ååºå¤´æä»¶ <concepts>
- æ ååºå¤´æä»¶ <coroutine>
- æ ååºå¤´æä»¶ <compare>
- æ ååºå¤´æä»¶ <version>
- æ ååºå¤´æä»¶ <source_location>
- æ ååºå¤´æä»¶ <format>
- æ ååºå¤´æä»¶ <span>
- æ ååºå¤´æä»¶ <ranges>
- æ ååºå¤´æä»¶ <bit>
- æ ååºå¤´æä»¶ <numbers>
- æ ååºå¤´æä»¶ <syncstream>
- æ ååºå¤´æä»¶ <stop_token>
- æ ååºå¤´æä»¶ <semaphore>
- æ ååºå¤´æä»¶ <latch>
- æ ååºå¤´æä»¶ <barrier>
- æ ååºå¤´æä»¶ <string>
- æ ååºå¤´æä»¶ <cstddef>
- æ ååºå¤´æä»¶ <limits>
- æ ååºå¤´æä»¶ <cfloat>
- æ ååºå¤´æä»¶ <climits>
- æ ååºå¤´æä»¶ <cstdlib>
- æ ååºå¤´æä»¶ <new>
- æ ååºå¤´æä»¶ <typeinfo>
- æ ååºå¤´æä»¶ <exception>
- æ ååºå¤´æä»¶ <cstdarg>
- æ ååºå¤´æä»¶ <ciso646>
- æ ååºå¤´æä»¶ <cstdalign>
- æ ååºå¤´æä»¶ <cstdbool>
- æ ååºå¤´æä»¶ <fstream>
- æ ååºå¤´æä»¶ <cstdio>
- æ ååºå¤´æä»¶ <strstream>
- æ ååºå¤´æä»¶ <shared_mutex>
- æ ååºå¤´æä»¶ <ccomplex>
- æ ååºå¤´æä»¶ <ctgmath>
- 注é
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >C++ æ ååºå¤´æä»¶ > æ ååºå¤´æä»¶ <locale>
æ ååºå¤´æä»¶ <locale>
æ¤å¤´æä»¶æ¯æ¬å°ååºçä¸é¨åã
ç±» | |
| ç¨ä»¥å°è£
æåå·®å¼ç夿å»é¢çéå (ç±») | |
åç¬¦ä¸²ä¸æµè½¬æ¢ | |
| (C++11)(C++17 ä¸å¼ç¨) |
è¿è¡å®½å符串ååèå符串ä¹é´çè½¬æ¢ (类模æ¿) |
| (C++11)(C++17 ä¸å¼ç¨) |
è¿è¡åèæµç¼å²åºå宽æµç¼å²åºé´çè½¬æ¢ (类模æ¿) |
å»é¢ç±»å«çåºç±» | |
| å®ä¹å符åç±»ç±»å« (ç±») | |
| å®ä¹å符转æ¢é误 (ç±») | |
| å®ä¹æ¶æ¯ç®å½ç±»å (ç±») | |
| å®ä¹æ¥ææ ¼å¼å¸¸é (ç±») | |
| å®ä¹è´§å¸æ ¼å¼åæ¨¡å¼ (ç±») | |
å»é¢ç±»å« | |
| å®ä¹å符å类表 (类模æ¿) | |
| std::ctype å¯¹äº char ç±»åçç¹å (类模æ¿ç¹å) | |
| å¨å符ç¼ç é´è½¬æ¢ï¼å
æ¬ UTF-8ãUTF-16ãUTF-32 (类模æ¿) | |
| å®ä¹åå
¸åºæ¯è¾ååç¬¦ä¸²çæ£å (类模æ¿) | |
| å®ç°ä»æ¶æ¯ç®å½è·åå符串 (类模æ¿) | |
| ä»è¾å
¥å符åºåä¸è§£ææ¶é´/æ¥æå¼å° std::tm ä¸ (类模æ¿) | |
| æ ¼å¼å std::tm å
容为å符åºå以è¾åº (类模æ¿) | |
| ä»è¾å
¥å符åºåä¸è§£ææ°åå¼ (类模æ¿) | |
| æ ¼å¼åæ°å¼ä¸ºå符åºå以è¾åº (类模æ¿) | |
| å®ä¹æ°å¼æ ç¹è§å (类模æ¿) | |
| ä»è¾å
¥å符åºåä¸è§£æå¹¶æé è´§å¸å¼ (类模æ¿) | |
| æ ¼å¼åè´§å¸å¼ä¸ºå符åºå以è¾åº (类模æ¿) | |
| å®ä¹ std::money_get ä¸ std::money_put æç¨çè´§å¸æ ¼å¼è§£æå¨çåæ° (类模æ¿) | |
ç¹å®äºæ¬å°ç¯å¢çå»é¢ç±»å« | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::ctype (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::codecvt (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::messages (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::collate (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::time_get (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::time_put (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::numpunct (类模æ¿) | |
| è¡¨ç¤ºç³»ç»æä¾çå
·åæ¬å°ç¯å¢ç std::moneypunct (类模æ¿) | |
彿° | |
æ¬å°ç¯å¢ä¸å»é¢ | |
| 仿¬å°ç¯å¢è·å¾ä¸ä¸ªå»é¢ (彿°æ¨¡æ¿) | |
| æ£æ¥æ¬å°ç¯å¢æ¯å¦å®ç°ç¹å®çå»é¢ (彿°æ¨¡æ¿) | |
å符åç±» | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢åç±»ä¸ºç©ºç½ (彿°æ¨¡æ¿) | |
| (C++11) |
æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢åç±»ä¸ºç©ºæ ¼å符 (彿°æ¨¡æ¿) |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为æ§å¶å符 (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为大å (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为å°å (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢åç±»ä¸ºåæ¯ (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为æ°å (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为æ ç¹ (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为åå
è¿å¶æ°å (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢åç±»ä¸ºåæ¯ææ°å (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢åç±»ä¸ºå¯æå°å符 (彿°æ¨¡æ¿) | |
| æ£æ¥å符æ¯å¦è¢«æ¬å°ç¯å¢å类为å¾å½¢å符 (彿°æ¨¡æ¿) | |
åç¬¦è½¬æ¢ | |
| ç¨æ¬å°ç¯å¢ç ctype å»é¢å°å符转æ¢ä¸ºå¤§å (彿°æ¨¡æ¿) | |
| ç¨æ¬å°ç¯å¢ç ctype å»é¢å°å符转æ¢ä¸ºå°å (彿°æ¨¡æ¿) | |
æ¦è¦
namespace std {  // locale ï¼ 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> charT toupper(charT c, const locale& loc); template <class charT> charT tolower(charT c, const locale& loc); template <class Codecvt, class Elem = wchar_t, class Wide_alloc = std::allocator<Elem>, class Byte_alloc = std::allocator<char> > class wstring_convert; template <class Codecvt, class Elem = wchar_t, class Tr = char_traits<Elem>> class wbuffer_convert;  // å符类åï¼ 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 = osterambuf_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; }
ç±» std::locale
class locale { public: // types: class facet; class id; typedef int category; static const category // æ¤å¤æèµä¹å¼ä» ç¨äºéé none = 0, collate = 0x010, ctype = 0x020, monetary= 0x040, numeric = 0x080, time = 0x100, messages= 0x200, all = collate | ctype | monetary | numeric | time | messages;  // æé /å¤å¶/éæ¯ï¼ locale() noexcept; locale(const locale& other) noexcept; explicit locale(const char* std_name); explicit locale(const string& std_name); locale(const locale& other, const char* std_name, category); locale(const locale& other, const string& std_name, category); template <class Facet> locale(const locale& other, Facet* f); locale(const locale& other, const locale& one, category); ~locale();  // éè彿° const locale& operator=(const locale& other) noexcept; template <class Facet> locale combine(const locale& other) const;  // locale æä½ï¼ basic_string<char> name() const; bool operator==(const locale& other) const; bool operator!=(const locale& other) const; template <class charT, class traits, class Allocator> bool operator()(const basic_string<charT,traits,Allocator>& s1, const basic_string<charT,traits,Allocator>& s2) const;  // å ¨å± locale å¯¹è±¡ï¼ static locale global(const locale&); static const locale& classic(); };
ç±» std::ctype_base
class ctype_base { public: typedef /*T*/ mask;  // æ°å¼ä» 为说æã static const mask space = 1 << 0; static const mask print = 1 << 1; static const mask cntrl = 1 << 2; static const mask upper = 1 << 3; static const mask lower = 1 << 4; static const mask alpha = 1 << 5; static const mask digit = 1 << 6; static const mask punct = 1 << 7; static const mask xdigit= 1 << 8; static const mask blank = 1 << 9; static const mask alnum = alpha | digit; static const mask graph = alnum | punct;  };
ç±» std::ctype
template <class charT> class ctype : public locale::facet, public ctype_base { public: typedef charT char_type; Â explicit ctype(size_t refs = 0); Â bool is(mask m, charT c) const; const charT* is(const charT* low, const charT* high, mask* vec) const; const charT* scan_is(mask m, const charT* low, const charT* high) const; const charT* scan_not(mask m, const charT* low, const charT* high) const; Â charT toupper(charT c) const; const charT* toupper(charT* low, const charT* high) const; charT tolower(charT c) const; const charT* tolower(charT* low, const charT* high) const; Â charT widen(char c) const; const char* widen(const char* low, const char* high, charT* to) const; char narrow(charT c, char dfault) const; const charT*narrow(const charT* low, const charT*, char dfault, char* to) const; Â static locale::id id; Â protected: ~ctype(); virtual bool do_is(mask m, charT c) const; virtual const charT* do_is(const charT* low, const charT* high, mask* vec) const; virtual const charT* do_scan_is(mask m, const charT* low, const charT* high) const; virtual const charT* do_scan_not(mask m, const charT* low, const charT* high) const; Â virtual charT do_toupper(charT) const; virtual const charT* do_toupper(charT* low, const charT* high) const; virtual charT do_tolower(charT) const; virtual const charT* do_tolower(charT* low, const charT* high) const; virtual charT do_widen(char) const; virtual const char* do_widen(const char* low, const char* high, charT* dest) const; virtual char do_narrow(charT, char dfault) const; virtual const charT* do_narrow(const charT* low, const charT* high, char dfault, char* dest) const; };
ç±» std::ctype_byname
template <class charT> class ctype_byname : public ctype<charT> { public: typedef typename ctype<charT>::mask mask; explicit ctype_byname(const char*, size_t refs = 0); explicit ctype_byname(const string&, size_t refs = 0); protected: ~ctype_byname(); };
ç±» std::ctype<char>
template <> class ctype<char> : public locale::facet, public ctype_base { public: typedef char char_type; explicit ctype(const mask* tab = 0, bool del = false, size_t refs = 0); bool is(mask m, char c) const; const char* is(const char* low, const char* high, mask* vec) const; const char* scan_is (mask m, const char* low, const char* high) const; const char* scan_not(mask m, const char* low, const char* high) const; char toupper(char c) const; const char* toupper(char* low, const char* high) const; char tolower(char c) const; const char* tolower(char* low, const char* high) const; char widen(char c) const; const char* widen(const char* low, const char* high, char* to) const; char narrow(char c, char dfault) const; const char* narrow(const char* low, const char* high, char dfault, char* to) const; Â static locale::id id; Â static const size_t table_size = implementation-defined; const mask* table() const noexcept; static const mask* classic_table() noexcept; Â protected: ~ctype(); virtual char do_toupper(char c) const; virtual const char* do_toupper(char* low, const char* high) const; virtual char do_tolower(char c) const; virtual const char* do_tolower(char* low, const char* high) const; virtual char do_widen(char c) const; virtual const char* do_widen(const char* low, const char* high, char* to) const; virtual char do_narrow(char c, char dfault) const; virtual const char* do_narrow(const char* low, const char* high, char dfault, char* to) const; };
ç±» std::codecvt_base
class codecvt_base { public: enum result { ok, partial, error, noconv }; };
ç±» std::codecvt
template <class internT, class externT, class stateT> class codecvt : public locale::facet, public codecvt_base { public: typedef internT intern_type; typedef externT extern_type; typedef stateT state_type; explicit codecvt(size_t refs = 0); result out(stateT& state, const internT* from, const internT* from_end, const internT*& from_next, externT* to, externT* to_end, externT*& to_next) const; result unshift(stateT& state, externT* to, externT* to_end, externT*& to_next) const; result in(stateT& state, const externT* from, const externT* from_end, const externT*& from_next, internT* to, internT* to_end, internT*& to_next) const; int encoding() const noexcept; bool always_noconv() const noexcept; int length(stateT&, const externT* from, const externT* end, size_t max) const; int max_length() const noexcept; static locale::id id; protected: ~codecvt(); virtual result do_out(stateT& state, const internT* from, const internT* from_end, const internT*& from_next, externT* to, externT* to_end, externT*& to_next) const; virtual result do_in(stateT& state, const externT* from, const externT* from_end, const externT*& from_next, internT* to, internT* to_end, internT*& to_next) const; virtual result do_unshift(stateT& state, externT* to, externT* to_end, externT*& to_next) const; virtual int do_encoding() const noexcept; virtual bool do_always_noconv() const noexcept; virtual int do_length(stateT&, const externT* from, const externT* end, size_t max) const; virtual int do_max_length() const noexcept; };
ç±» std::codecvt_byname
template <class internT, class externT, class stateT> class codecvt_byname : public codecvt<internT, externT, stateT> { public: explicit codecvt_byname(const char*, size_t refs = 0); explicit codecvt_byname(const string&, size_t refs = 0); protected: ~codecvt_byname(); };
ç±» std::num_get
template <class charT, class InputIterator = istreambuf_iterator<charT> > class num_get : public locale::facet { public: typedef charT char_type; typedef InputIterator iter_type; explicit num_get(size_t refs = 0); iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, bool& v) const; iter_type get(iter_type in, iter_type end, ios_base& , ios_base::iostate& err, long& v) const; iter_type get(iter_type in, iter_type end, ios_base& , ios_base::iostate& err, long long& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, unsigned short& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, unsigned int& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, unsigned long& v) const; iter_type get(iter_type in, iter_type end, ios_base& , ios_base::iostate& err, unsigned long long& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, float& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, double& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, long double& v) const; iter_type get(iter_type in, iter_type end, ios_base&, ios_base::iostate& err, void*& v) const; Â static locale::id id; Â Â protected: ~num_get(); Â virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, bool& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, long& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, long long& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, unsigned short& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, unsigned int& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, unsigned long& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, unsigned long long& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, float& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, double& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, long double& v) const; virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate& err, void*& v) const; };
ç±» std::num_put
template <class CharT, class OutputIterator = ostreambuf_iterator<CharT> > class num_put : public locale::facet { public: typedef CharT char_type; typedef OutputIterator iter_type; Â explicit num_put(size_t refs = 0); Â iter_type put(iter_type s, ios_base& f, char_type fill, bool v) const; iter_type put(iter_type s, ios_base& f, char_type fill, long v) const; iter_type put(iter_type s, ios_base& f, char_type fill, long long v) const; iter_type put(iter_type s, ios_base& f, char_type fill, unsigned long v) const; iter_type put(iter_type s, ios_base& f, char_type fill, unsigned long long v) const; iter_type put(iter_type s, ios_base& f, char_type fill, double v) const; iter_type put(iter_type s, ios_base& f, char_type fill, long double v) const; iter_type put(iter_type s, ios_base& f, char_type fill, const void* v) const; Â static locale::id id; Â protected: ~num_put(); Â virtual iter_type do_put(iter_type, ios_base&, char_type fill, bool v) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, long v) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, long long v) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, unsigned long) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, unsigned long long) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, double v) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, long double v) const; virtual iter_type do_put(iter_type, ios_base&, char_type fill, const void* v) const; };
ç±» std::numpunct
template <class CharT> class numpunct : public locale::facet { public: typedef CharT char_type; typedef basic_string<CharT> string_type;  explicit numpunct(size_t refs = 0);  char_type decimal_point() const; char_type thousands_sep() const; string grouping() const; string_type truename() const; string_type falsename() const;  static locale::id id;  protected: ~numpunct(); // è彿°  virtual char_type do_decimal_point() const; virtual char_type do_thousands_sep() const; virtual string do_grouping() const; virtual string_type do_truename() const; // å¯¹äº bool virtual string_type do_falsename() const; // å¯¹äº bool };
ç±» std::numpunct_byname
template <class CharT> class numpunct_byname : public numpunct<CharT> { public: typedef CharT char_type; typedef basic_string<CharT> string_type; Â explicit numpunct_byname(const char*, size_t refs = 0); explicit numpunct_byname(const string&, size_t refs = 0); Â protected: ~numpunct_byname(); };
ç±» std::collate
template <class CharT> class collate : public locale::facet { public: typedef CharT char_type; typedef basic_string<CharT> string_type; Â explicit collate(size_t refs = 0); Â int compare(const CharT* low1, const CharT* high1, const CharT* low2, const CharT* high2) const; string_type transform(const CharT* low, const CharT* high) const; long hash(const CharT* low, const CharT* high) const; Â static locale::id id; Â protected: ~collate(); Â virtual int do_compare(const CharT* low1, const CharT* high1, const CharT* low2, const CharT* high2) const; virtual string_type do_transform(const CharT* low, const CharT* high) const; virtual long do_hash (const CharT* low, const CharT* high) const; };
ç±» std::collate_byname
template <class CharT> class collate_byname : public collate<CharT> { public: typedef basic_string<CharT> string_type; Â explicit collate_byname(const char*, size_t refs = 0); explicit collate_byname(const string&, size_t refs = 0); Â protected: ~collate_byname(); };
ç±» std::time_base
class time_base { public: enum dateorder { no_order, dmy, mdy, ymd, ydm }; };
ç±» std::time_get
template <class CharT, class InputIterator = istreambuf_iterator<CharT> > class time_get : public locale::facet, public time_base { public: typedef CharT char_type; typedef InputIterator iter_type; Â explicit time_get(size_t refs = 0); Â dateorder date_order() const; iter_type get_time(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t) const; iter_type get_date(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t) const; iter_type get_weekday(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t) const; iter_type get_monthname(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t) const; iter_type get_year(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t) const; iter_type get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t, char format, char modifier = 0) const; iter_type get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t, const char_type* fmt, const char_type* fmtend) const; Â static locale::id id; Â protected: ~time_get(); Â virtual dateorder do_date_order() const; virtual iter_type do_get_time(iter_type s, iter_type end, ios_base&, ios_base::iostate& err, tm* t) const; virtual iter_type do_get_date(iter_type s, iter_type end, ios_base&, ios_base::iostate& err, tm* t) const; virtual iter_type do_get_weekday(iter_type s, iter_type end, ios_base&, ios_base::iostate& err, tm* t) const; virtual iter_type do_get_monthname(iter_type s, iter_type end, ios_base&, ios_base::iostate& err, tm* t) const; virtual iter_type do_get_year(iter_type s, iter_type end, ios_base&, ios_base::iostate& err, tm* t) const; virtual iter_type do_get(iter_type s, iter_type end, ios_base& f, ios_base::iostate& err, tm* t, char format, char modifier) const; };
ç±» std::time_get_byname
template <class CharT, class InputIterator = istreambuf_iterator<CharT> > class time_get_byname : public time_get<CharT, InputIterator> { public: typedef time_base::dateorder dateorder; typedef InputIterator iter_type; Â explicit time_get_byname(const char*, size_t refs = 0); explicit time_get_byname(const string&, size_t refs = 0); Â protected: ~time_get_byname(); };
ç±» std::time_put
template <class CharT, class OutputIterator = ostreambuf_iterator<CharT> > class time_put : public locale::facet { public: typedef CharT char_type; typedef OutputIterator iter_type;  explicit time_put(size_t refs = 0);  // ä¸å彿°ä»¥å ¶ä»æå彿°å®ç°ã iter_type put(iter_type s, ios_base& f, char_type fill, const tm* tmb, const CharT* pattern, const CharT* pat_end) const; iter_type put(iter_type s, ios_base& f, char_type fill, const tm* tmb, char format, char modifier = 0) const;  static locale::id id;  protected: ~time_put();  virtual iter_type do_put(iter_type s, ios_base&, char_type, const tm* t, char format, char modifier) const; };
ç±» std::time_put_byname
template <class CharT, class OutputIterator = ostreambuf_iterator<CharT> > class time_put_byname : public time_put<CharT, OutputIterator> { public: typedef CharT char_type; typedef OutputIterator iter_type; Â explicit time_put_byname(const char*, size_t refs = 0); explicit time_put_byname(const string&, size_t refs = 0); Â protected: ~time_put_byname(); };
ç±» std::money_get
template <class CharT, class InputIterator = istreambuf_iterator<CharT> > class money_get : public locale::facet { public: typedef CharT char_type; typedef InputIterator iter_type; typedef basic_string<CharT> string_type; Â explicit money_get(size_t refs = 0); Â iter_type get(iter_type s, iter_type end, bool intl, ios_base& f, ios_base::iostate& err, long double& units) const; iter_type get(iter_type s, iter_type end, bool intl, ios_base& f, ios_base::iostate& err, string_type& digits) const; Â static locale::id id; Â protected: ~money_get(); Â virtual iter_type do_get(iter_type, iter_type, bool, ios_base&, ios_base::iostate& err, long double& units) const; virtual iter_type do_get(iter_type, iter_type, bool, ios_base&, ios_base::iostate& err, string_type& digits) const; };
ç±» std::money_put
template <class CharT, class OutputIterator = ostreambuf_iterator<CharT> > class money_put : public locale::facet { public: typedef CharT char_type; typedef OutputIterator iter_type; typedef basic_string<CharT> string_type; Â explicit money_put(size_t refs = 0); Â iter_type put(iter_type s, bool intl, ios_base& f, char_type fill, long double units) const; iter_type put(iter_type s, bool intl, ios_base& f, char_type fill, const string_type& digits) const; Â static locale::id id; Â protected: ~money_put(); Â virtual iter_type do_put(iter_type, bool, ios_base&, char_type fill, long double units) const; virtual iter_type do_put(iter_type, bool, ios_base&, char_type fill, const string_type& digits) const; };
ç±» std::money_base
class money_base { public: enum part { none, space, symbol, sign, value }; struct pattern { char field[4]; }; };
ç±» std::moneypunct
template <class CharT, bool International = false> class moneypunct : public locale::facet, public money_base { public: typedef CharT char_type; typedef basic_string<CharT> string_type; Â explicit moneypunct(size_t refs = 0); Â CharT decimal_point() const; CharT thousands_sep() const; string grouping() const; string_type curr_symbol() const; string_type positive_sign() const; string_type negative_sign() const; int frac_digits() const; pattern pos_format() const; pattern neg_format() const; Â static locale::id id; static const bool intl = International; Â protected: ~moneypunct(); Â virtual CharT do_decimal_point() const; virtual CharT do_thousands_sep() const; virtual string do_grouping() const; virtual string_type do_curr_symbol() const; virtual string_type do_positive_sign() const; virtual string_type do_negative_sign() const; virtual int do_frac_digits() const; virtual pattern do_pos_format() const; virtual pattern do_neg_format() const; };
ç±» std::moneypunct_byname
template <class CharT, bool Intl = false> class moneypunct_byname : public moneypunct<CharT, Intl> { public: typedef money_base::pattern pattern; typedef basic_string<CharT> string_type; Â explicit moneypunct_byname(const char*, size_t refs = 0); explicit moneypunct_byname(const string&, size_t refs = 0); Â protected: ~moneypunct_byname(); };
ç±» std::messages_base
class messages_base { public: typedef /* æªææçæç¬¦å·æ´æ°ç±»å */ catalog; };
ç±» std::messages
template <class CharT> class messages : public locale::facet, public messages_base { public: typedef CharT char_type; typedef basic_string<CharT> string_type; Â explicit messages(size_t refs = 0); Â catalog open(const basic_string<char>& fn, const locale&) const; string_type get(catalog c, int set, int msgid, const string_type& dfault) const; void close(catalog c) const; Â static locale::id id; Â protected: ~messages(); Â virtual catalog do_open(const basic_string<char>&, const locale&) const; virtual string_type do_get(catalog, int set, int msgid, const string_type& dfault) const; virtual void do_close(catalog) const; };
ç±» std::messages_byname
template <class CharT> class messages_byname : public messages<CharT> { public: typedef messages_base::catalog catalog; typedef basic_string<CharT> string_type; Â explicit messages_byname(const char*, size_t refs = 0); explicit messages_byname(const string&, size_t refs = 0); Â protected: ~messages_byname(); };
ç±» std::wstring_convert
template<class Codecvt, class Elem = wchar_t, class Wide_alloc = std::allocator<Elem>, class Byte_alloc = std::allocator<char> > class wstring_convert { public: typedef std::basic_string<char, char_traits<char>, Byte_alloc> byte_string; typedef std::basic_string<Elem, char_traits<Elem>, Wide_alloc> wide_string; typedef typename Codecvt::state_type state_type; typedef typename wide_string::traits_type::int_type int_type;  explicit wstring_convert(Codecvt* pcvt = new Codecvt); wstring_convert(Codecvt* pcvt, state_type state); explicit wstring_convert(const byte_string& byte_err, const wide_string& wide_err = wide_string()); ~wstring_convert();  wstring_convert(const wstring_convert&) = delete; wstring_convert& operator=(const wstring_convert&) = delete;  wide_string from_bytes(char byte); wide_string from_bytes(const char* ptr); wide_string from_bytes(const byte_string& str); wide_string from_bytes(const char* first, const char* last); byte_string to_bytes(Elem wchar); byte_string to_bytes(const Elem* wptr); byte_string to_bytes(const wide_string& wstr); byte_string to_bytes(const Elem* first, const Elem* last); size_t converted() const noexcept; state_type state() const;  private: byte_string byte_err_string; // ä» ç¨äºéé wide_string wide_err_string; // ä» ç¨äºéé Codecvt* cvtptr; // ä» ç¨äºéé state_type cvtstate; // ä» ç¨äºéé size_t cvtcount; // ä» ç¨äºéé };
ç±» std::wbuffer_convert
template<class Codecvt, class Elem = wchar_t, class Tr = std::char_traits<Elem> > class wbuffer_convert : public std::basic_streambuf<Elem, Tr> { public: typedef typename Codecvt::state_type state_type;  explicit wbuffer_convert(std::streambuf* bytebuf = 0, Codecvt* pcvt = new Codecvt, state_type state = state_type()); ~wbuffer_convert();  wbuffer_convert(const wbuffer_convert&) = delete; wbuffer_convert& operator=(const wbuffer_convert&) = delete;  std::streambuf* rdbuf() const; std::streambuf* rdbuf(std::streambuf* bytebuf); state_type state() const; private: std::streambuf* bufptr; // ä» ç¨äºéé Codecvt* cvtptr; // ä» ç¨äºéé state_type cvtstate; // ä» ç¨äºéé };