From ab5f330cc69338ff1827cd2cbc108337e1855760 Mon Sep 17 00:00:00 2001 From: rozmansi Date: Tue, 25 Jul 2023 14:32:43 +0000 Subject: [PATCH] deploy: 3114c54f4b7fdc7f8300a35b1a972d4669072ecf --- annotated.html | 48 +- base64_8hpp_source.html | 2 +- chrono_8hpp_source.html | 2 +- classes.html | 4 +- classstdex_1_1base64__dec-members.html | 2 +- classstdex_1_1base64__dec.html | 2 +- classstdex_1_1base64__enc-members.html | 2 +- classstdex_1_1base64__enc.html | 2 +- classstdex_1_1basic__diagstream-members.html | 93 ++ classstdex_1_1basic__diagstream.html | 132 ++ classstdex_1_1basic__diagstream.png | Bin 0 -> 935 bytes ...stdex_1_1basic__diagstreambuf-members.html | 98 ++ classstdex_1_1basic__diagstreambuf.html | 151 ++ classstdex_1_1basic__diagstreambuf.png | Bin 0 -> 988 bytes classstdex_1_1basic__fstream-members.html | 2 +- classstdex_1_1basic__fstream.html | 2 +- classstdex_1_1basic__iostreamfmt-members.html | 2 +- classstdex_1_1basic__iostreamfmt.html | 2 +- ...ex_1_1basic__isharedstrstream-members.html | 2 +- classstdex_1_1basic__isharedstrstream.html | 2 +- classstdex_1_1basic__istreamfmt-members.html | 2 +- classstdex_1_1basic__istreamfmt.html | 2 +- classstdex_1_1basic__ostreamfmt-members.html | 2 +- classstdex_1_1basic__ostreamfmt.html | 2 +- ...sstdex_1_1basic__sharedstrbuf-members.html | 2 +- classstdex_1_1basic__sharedstrbuf.html | 12 +- ...sstdex_1_1basic__stringstream-members.html | 2 +- classstdex_1_1basic__stringstream.html | 2 +- classstdex_1_1errno__error-members.html | 2 +- classstdex_1_1errno__error.html | 2 +- classstdex_1_1global__progress-members.html | 2 +- classstdex_1_1global__progress.html | 2 +- classstdex_1_1hex__dec-members.html | 2 +- classstdex_1_1hex__dec.html | 2 +- classstdex_1_1hex__enc-members.html | 2 +- classstdex_1_1hex__enc.html | 2 +- classstdex_1_1idrec_1_1record-members.html | 2 +- classstdex_1_1idrec_1_1record.html | 2 +- classstdex_1_1lazy__progress-members.html | 2 +- classstdex_1_1lazy__progress.html | 2 +- ...dex_1_1parser_1_1basic__angle-members.html | 2 +- classstdex_1_1parser_1_1basic__angle.html | 2 +- ...x_1_1parser_1_1basic__any__cu-members.html | 2 +- classstdex_1_1parser_1_1basic__any__cu.html | 2 +- ...stdex_1_1parser_1_1basic__bol-members.html | 2 +- classstdex_1_1parser_1_1basic__bol.html | 2 +- ...ex_1_1parser_1_1basic__branch-members.html | 2 +- classstdex_1_1parser_1_1basic__branch.html | 2 +- ...r_1_1basic__chemical__formula-members.html | 2 +- ...1_1parser_1_1basic__chemical__formula.html | 2 +- ...sstdex_1_1parser_1_1basic__cu-members.html | 2 +- classstdex_1_1parser_1_1basic__cu.html | 2 +- ...x_1_1parser_1_1basic__cu__set-members.html | 2 +- classstdex_1_1parser_1_1basic__cu__set.html | 2 +- ...tdex_1_1parser_1_1basic__date-members.html | 2 +- classstdex_1_1parser_1_1basic__date.html | 2 +- ...r_1_1basic__dns__domain__char-members.html | 2 +- ...1_1parser_1_1basic__dns__domain__char.html | 2 +- ...1_1parser_1_1basic__dns__name-members.html | 2 +- classstdex_1_1parser_1_1basic__dns__name.html | 2 +- ...rser_1_1basic__email__address-members.html | 2 +- ...ex_1_1parser_1_1basic__email__address.html | 2 +- ..._1_1parser_1_1basic__emoticon-members.html | 2 +- classstdex_1_1parser_1_1basic__emoticon.html | 2 +- ...stdex_1_1parser_1_1basic__eol-members.html | 2 +- classstdex_1_1parser_1_1basic__eol.html | 2 +- ..._1_1parser_1_1basic__fraction-members.html | 2 +- classstdex_1_1parser_1_1basic__fraction.html | 2 +- ...x_1_1parser_1_1basic__integer-members.html | 2 +- classstdex_1_1parser_1_1basic__integer.html | 2 +- ...1_1parser_1_1basic__integer10-members.html | 2 +- classstdex_1_1parser_1_1basic__integer10.html | 2 +- ...1parser_1_1basic__integer10ts-members.html | 2 +- ...stdex_1_1parser_1_1basic__integer10ts.html | 2 +- ...1_1parser_1_1basic__integer16-members.html | 2 +- classstdex_1_1parser_1_1basic__integer16.html | 2 +- ...arser_1_1basic__ipv4__address-members.html | 2 +- ...dex_1_1parser_1_1basic__ipv4__address.html | 2 +- ...arser_1_1basic__ipv6__address-members.html | 2 +- ...dex_1_1parser_1_1basic__ipv6__address.html | 2 +- ...1basic__ipv6__scope__id__char-members.html | 2 +- ...arser_1_1basic__ipv6__scope__id__char.html | 2 +- ..._1parser_1_1basic__iterations-members.html | 2 +- ...sstdex_1_1parser_1_1basic__iterations.html | 2 +- ...parser_1_1basic__json__string-members.html | 2 +- ...tdex_1_1parser_1_1basic__json__string.html | 2 +- ...rser_1_1basic__mixed__numeral-members.html | 2 +- ...ex_1_1parser_1_1basic__mixed__numeral.html | 2 +- ...r_1_1basic__monetary__numeral-members.html | 2 +- ...1_1parser_1_1basic__monetary__numeral.html | 2 +- ...tdex_1_1parser_1_1basic__noop-members.html | 2 +- classstdex_1_1parser_1_1basic__noop.html | 2 +- ...ex_1_1parser_1_1basic__parser-members.html | 2 +- classstdex_1_1parser_1_1basic__parser.html | 2 +- ...1parser_1_1basic__permutation-members.html | 2 +- ...stdex_1_1parser_1_1basic__permutation.html | 2 +- ...arser_1_1basic__phone__number-members.html | 2 +- ...dex_1_1parser_1_1basic__phone__number.html | 2 +- ...1_1parser_1_1basic__punct__cu-members.html | 2 +- classstdex_1_1parser_1_1basic__punct__cu.html | 2 +- ...rser_1_1basic__roman__numeral-members.html | 2 +- ...ex_1_1parser_1_1basic__roman__numeral.html | 2 +- ...1_1basic__scientific__numeral-members.html | 2 +- ...1parser_1_1basic__scientific__numeral.html | 2 +- ...dex_1_1parser_1_1basic__score-members.html | 2 +- classstdex_1_1parser_1_1basic__score.html | 2 +- ..._1_1parser_1_1basic__sequence-members.html | 2 +- classstdex_1_1parser_1_1basic__sequence.html | 2 +- ...stdex_1_1parser_1_1basic__set-members.html | 2 +- classstdex_1_1parser_1_1basic__set.html | 2 +- ...ser_1_1basic__signed__numeral-members.html | 2 +- ...x_1_1parser_1_1basic__signed__numeral.html | 2 +- ...1_1parser_1_1basic__space__cu-members.html | 2 +- classstdex_1_1parser_1_1basic__space__cu.html | 2 +- ..._1basic__space__or__punct__cu-members.html | 2 +- ...parser_1_1basic__space__or__punct__cu.html | 2 +- ...ex_1_1parser_1_1basic__string-members.html | 2 +- classstdex_1_1parser_1_1basic__string.html | 2 +- ...rser_1_1basic__string__branch-members.html | 2 +- ...ex_1_1parser_1_1basic__string__branch.html | 2 +- ...tdex_1_1parser_1_1basic__time-members.html | 2 +- classstdex_1_1parser_1_1basic__time.html | 2 +- ...stdex_1_1parser_1_1basic__url-members.html | 2 +- classstdex_1_1parser_1_1basic__url.html | 2 +- ...1_1basic__url__password__char-members.html | 2 +- ...1parser_1_1basic__url__password__char.html | 2 +- ...1_1parser_1_1basic__url__path-members.html | 2 +- classstdex_1_1parser_1_1basic__url__path.html | 2 +- ...ser_1_1basic__url__path__char-members.html | 2 +- ...x_1_1parser_1_1basic__url__path__char.html | 2 +- ...1_1basic__url__username__char-members.html | 2 +- ...1parser_1_1basic__url__username__char.html | 2 +- ...tdex_1_1parser_1_1http__agent-members.html | 2 +- classstdex_1_1parser_1_1http__agent.html | 2 +- ..._1_1parser_1_1http__any__type-members.html | 2 +- classstdex_1_1parser_1_1http__any__type.html | 2 +- ...x_1_1parser_1_1http__asterisk-members.html | 2 +- classstdex_1_1parser_1_1http__asterisk.html | 2 +- ...dex_1_1parser_1_1http__cookie-members.html | 2 +- classstdex_1_1parser_1_1http__cookie.html | 2 +- ...er_1_1http__cookie__parameter-members.html | 2 +- ..._1_1parser_1_1http__cookie__parameter.html | 2 +- ...dex_1_1parser_1_1http__header-members.html | 2 +- classstdex_1_1parser_1_1http__header.html | 2 +- ...x_1_1parser_1_1http__language-members.html | 2 +- classstdex_1_1parser_1_1http__language.html | 2 +- ..._1parser_1_1http__line__break-members.html | 2 +- ...sstdex_1_1parser_1_1http__line__break.html | 2 +- ...1parser_1_1http__media__range-members.html | 2 +- ...stdex_1_1parser_1_1http__media__range.html | 2 +- ..._1parser_1_1http__media__type-members.html | 2 +- ...sstdex_1_1parser_1_1http__media__type.html | 2 +- ..._1_1parser_1_1http__parameter-members.html | 2 +- classstdex_1_1parser_1_1http__parameter.html | 2 +- ...x_1_1parser_1_1http__protocol-members.html | 2 +- classstdex_1_1parser_1_1http__protocol.html | 2 +- ...arser_1_1http__quoted__string-members.html | 2 +- ...dex_1_1parser_1_1http__quoted__string.html | 2 +- ...ex_1_1parser_1_1http__request-members.html | 2 +- classstdex_1_1parser_1_1http__request.html | 2 +- ...tdex_1_1parser_1_1http__space-members.html | 2 +- classstdex_1_1parser_1_1http__space.html | 2 +- ...1_1parser_1_1http__text__char-members.html | 2 +- classstdex_1_1parser_1_1http__text__char.html | 2 +- ...tdex_1_1parser_1_1http__token-members.html | 2 +- classstdex_1_1parser_1_1http__token.html | 2 +- ...sstdex_1_1parser_1_1http__url-members.html | 2 +- classstdex_1_1parser_1_1http__url.html | 2 +- ...arser_1_1http__url__parameter-members.html | 2 +- ...dex_1_1parser_1_1http__url__parameter.html | 2 +- ..._1_1parser_1_1http__url__path-members.html | 2 +- classstdex_1_1parser_1_1http__url__path.html | 2 +- ...r_1_1http__url__path__segment-members.html | 2 +- ...1_1parser_1_1http__url__path__segment.html | 2 +- ..._1_1parser_1_1http__url__port-members.html | 2 +- classstdex_1_1parser_1_1http__url__port.html | 2 +- ..._1parser_1_1http__url__server-members.html | 2 +- ...sstdex_1_1parser_1_1http__url__server.html | 2 +- ...tdex_1_1parser_1_1http__value-members.html | 2 +- classstdex_1_1parser_1_1http__value.html | 2 +- ...er_1_1http__value__collection-members.html | 2 +- ..._1_1parser_1_1http__value__collection.html | 2 +- ...dex_1_1parser_1_1http__weight-members.html | 2 +- classstdex_1_1parser_1_1http__weight.html | 2 +- ...rser_1_1http__weighted__value-members.html | 2 +- ...ex_1_1parser_1_1http__weighted__value.html | 2 +- ...1parser_1_1parser__collection-members.html | 2 +- ...stdex_1_1parser_1_1parser__collection.html | 2 +- ...ex_1_1parser_1_1sgml__any__cp-members.html | 2 +- classstdex_1_1parser_1_1sgml__any__cp.html | 2 +- classstdex_1_1parser_1_1sgml__cp-members.html | 2 +- classstdex_1_1parser_1_1sgml__cp.html | 2 +- ...ex_1_1parser_1_1sgml__cp__set-members.html | 2 +- classstdex_1_1parser_1_1sgml__cp__set.html | 2 +- ...er_1_1sgml__dns__domain__char-members.html | 2 +- ..._1_1parser_1_1sgml__dns__domain__char.html | 2 +- ..._1sgml__ipv6__scope__id__char-members.html | 2 +- ...parser_1_1sgml__ipv6__scope__id__char.html | 2 +- ..._1_1parser_1_1sgml__punct__cp-members.html | 2 +- classstdex_1_1parser_1_1sgml__punct__cp.html | 2 +- ..._1_1parser_1_1sgml__space__cp-members.html | 2 +- classstdex_1_1parser_1_1sgml__space__cp.html | 2 +- ...1_1sgml__space__or__punct__cp-members.html | 2 +- ...1parser_1_1sgml__space__or__punct__cp.html | 2 +- ...dex_1_1parser_1_1sgml__string-members.html | 2 +- classstdex_1_1parser_1_1sgml__string.html | 2 +- ..._1_1sgml__url__password__char-members.html | 2 +- ..._1parser_1_1sgml__url__password__char.html | 2 +- ...rser_1_1sgml__url__path__char-members.html | 2 +- ...ex_1_1parser_1_1sgml__url__path__char.html | 2 +- ..._1_1sgml__url__username__char-members.html | 2 +- ..._1parser_1_1sgml__url__username__char.html | 2 +- classstdex_1_1progress-members.html | 2 +- classstdex_1_1progress.html | 2 +- classstdex_1_1progress__switcher-members.html | 2 +- classstdex_1_1progress__switcher.html | 2 +- classstdex_1_1user__cancelled-members.html | 2 +- classstdex_1_1user__cancelled.html | 2 +- classstdex_1_1vector__queue-members.html | 2 +- classstdex_1_1vector__queue.html | 2 +- dir_4be4f7b278e009bf0f1906cf31fb73bd.html | 2 +- dir_d44c64559bbebec7f509842c48db8b23.html | 2 +- dir_fca3c47b2ea228727bd6729832f89576.html | 2 +- endian_8hpp_source.html | 2 +- errno_8hpp_source.html | 2 +- exception_8hpp_source.html | 2 +- files.html | 2 +- functions.html | 2 +- functions_func.html | 2 +- functions_type.html | 2 +- functions_vars.html | 2 +- hex_8hpp_source.html | 2 +- hierarchy.html | 257 ++-- idrec_8hpp_source.html | 2 +- index.html | 2 +- internal_8hpp_source.html | 2 +- interval_8hpp_source.html | 2 +- ios_8hpp_source.html | 1067 ++++++++------ mapping_8hpp_source.html | 2 +- memory_8hpp_source.html | 2 +- parser_8hpp_source.html | 2 +- pch_8h_source.html | 4 +- progress_8hpp_source.html | 2 +- sal_8hpp_source.html | 45 +- search/all_1.js | 112 +- search/classes_1.js | 110 +- sgml_8hpp_source.html | 2 +- sgml__unicode_8hpp_source.html | 2 +- string_8hpp_source.html | 1283 +++++++++-------- ...tdex_1_1chrono_1_1aosn__clock-members.html | 2 +- structstdex_1_1chrono_1_1aosn__clock.html | 2 +- structstdex_1_1getter-members.html | 2 +- structstdex_1_1getter.html | 2 +- structstdex_1_1interval-members.html | 2 +- structstdex_1_1interval.html | 2 +- structstdex_1_1mapping-members.html | 2 +- structstdex_1_1mapping.html | 2 +- structstdex_1_1no__delete-members.html | 2 +- structstdex_1_1no__delete.html | 2 +- ..._1_1no__delete_3_01_t_0f_0e_4-members.html | 2 +- structstdex_1_1no__delete_3_01_t_0f_0e_4.html | 2 +- ...1parser_1_1http__factor__more-members.html | 2 +- ...stdex_1_1parser_1_1http__factor__more.html | 2 +- structstdex_1_1robber-members.html | 2 +- structstdex_1_1robber.html | 2 +- unicode_8hpp_source.html | 2 +- vector__queue_8hpp_source.html | 2 +- 267 files changed, 2273 insertions(+), 1645 deletions(-) create mode 100644 classstdex_1_1basic__diagstream-members.html create mode 100644 classstdex_1_1basic__diagstream.html create mode 100644 classstdex_1_1basic__diagstream.png create mode 100644 classstdex_1_1basic__diagstreambuf-members.html create mode 100644 classstdex_1_1basic__diagstreambuf.html create mode 100644 classstdex_1_1basic__diagstreambuf.png diff --git a/annotated.html b/annotated.html index a902e6331..0cd06e974 100644 --- a/annotated.html +++ b/annotated.html @@ -170,34 +170,36 @@ $(function() {  Csgml_url_username_charTest for valid URL username SGML character  Cbase64_decBase64 decoding session  Cbase64_encBase64 encoding session - Cbasic_fstreamFile stream with additional std::filesystem features - Cbasic_iostreamfmtBinary stream reader/writer - Cbasic_isharedstrstream - Cbasic_istreamfmtBinary stream reader - Cbasic_ostreamfmtBinary stream writer - Cbasic_sharedstrbufShared-memory string buffer - Cbasic_stringstreamString stream - Cerrno_errorStandard C runtime library error - CgetterHelper template to allow access to internal std C++ private members - Cglobal_progressGlobal progress indicator base class - Chex_decHexadecimal decoding session - Chex_encHexadecimal encoding session - CintervalNumerical interval - Clazy_progressLazy progress indicator base class - CmappingMaps index in source string to index in destination string - Cno_deleteNoop deleter - Cno_delete< T[]>Noop array deleter - CprogressProgress indicator base class - Cprogress_switcherProgress indicator switcher - CrobberHelper template to allow access to internal std C++ private members - Cuser_cancelledUser cancelled exception - Cvector_queueHelper class to allow limited size FIFO queues implemented as vector of elements + Cbasic_diagstreamDiagnostic input/output stream + Cbasic_diagstreambufDiagnostic input stream buffer + Cbasic_fstreamFile stream with additional std::filesystem features + Cbasic_iostreamfmtBinary stream reader/writer + Cbasic_isharedstrstream + Cbasic_istreamfmtBinary stream reader + Cbasic_ostreamfmtBinary stream writer + Cbasic_sharedstrbufShared-memory string stream buffer + Cbasic_stringstreamString stream + Cerrno_errorStandard C runtime library error + CgetterHelper template to allow access to internal std C++ private members + Cglobal_progressGlobal progress indicator base class + Chex_decHexadecimal decoding session + Chex_encHexadecimal encoding session + CintervalNumerical interval + Clazy_progressLazy progress indicator base class + CmappingMaps index in source string to index in destination string + Cno_deleteNoop deleter + Cno_delete< T[]>Noop array deleter + CprogressProgress indicator base class + Cprogress_switcherProgress indicator switcher + CrobberHelper template to allow access to internal std C++ private members + Cuser_cancelledUser cancelled exception + Cvector_queueHelper class to allow limited size FIFO queues implemented as vector of elements diff --git a/base64_8hpp_source.html b/base64_8hpp_source.html index af1b3a8cc..db59843e4 100644 --- a/base64_8hpp_source.html +++ b/base64_8hpp_source.html @@ -318,7 +318,7 @@ $(function() { diff --git a/chrono_8hpp_source.html b/chrono_8hpp_source.html index db6af0979..5f8a9b1a8 100644 --- a/chrono_8hpp_source.html +++ b/chrono_8hpp_source.html @@ -236,7 +236,7 @@ $(function() { diff --git a/classes.html b/classes.html index ecfcf189b..4d08f1dbb 100644 --- a/classes.html +++ b/classes.html @@ -80,7 +80,7 @@ $(function() {
aosn_clock (stdex::chrono)
B
-
base64_dec (stdex)
base64_enc (stdex)
basic_angle (stdex::parser)
basic_any_cu (stdex::parser)
basic_bol (stdex::parser)
basic_branch (stdex::parser)
basic_chemical_formula (stdex::parser)
basic_cu (stdex::parser)
basic_cu_set (stdex::parser)
basic_date (stdex::parser)
basic_dns_domain_char (stdex::parser)
basic_dns_name (stdex::parser)
basic_email_address (stdex::parser)
basic_emoticon (stdex::parser)
basic_eol (stdex::parser)
basic_fraction (stdex::parser)
basic_fstream (stdex)
basic_integer (stdex::parser)
basic_integer10 (stdex::parser)
basic_integer10ts (stdex::parser)
basic_integer16 (stdex::parser)
basic_iostreamfmt (stdex)
basic_ipv4_address (stdex::parser)
basic_ipv6_address (stdex::parser)
basic_ipv6_scope_id_char (stdex::parser)
basic_isharedstrstream (stdex)
basic_istreamfmt (stdex)
basic_iterations (stdex::parser)
basic_json_string (stdex::parser)
basic_mixed_numeral (stdex::parser)
basic_monetary_numeral (stdex::parser)
basic_noop (stdex::parser)
basic_ostreamfmt (stdex)
basic_parser (stdex::parser)
basic_permutation (stdex::parser)
basic_phone_number (stdex::parser)
basic_punct_cu (stdex::parser)
basic_roman_numeral (stdex::parser)
basic_scientific_numeral (stdex::parser)
basic_score (stdex::parser)
basic_sequence (stdex::parser)
basic_set (stdex::parser)
basic_sharedstrbuf (stdex)
basic_signed_numeral (stdex::parser)
basic_space_cu (stdex::parser)
basic_space_or_punct_cu (stdex::parser)
basic_string (stdex::parser)
basic_string_branch (stdex::parser)
basic_stringstream (stdex)
basic_time (stdex::parser)
basic_url (stdex::parser)
basic_url_password_char (stdex::parser)
basic_url_path (stdex::parser)
basic_url_path_char (stdex::parser)
basic_url_username_char (stdex::parser)
+
base64_dec (stdex)
base64_enc (stdex)
basic_angle (stdex::parser)
basic_any_cu (stdex::parser)
basic_bol (stdex::parser)
basic_branch (stdex::parser)
basic_chemical_formula (stdex::parser)
basic_cu (stdex::parser)
basic_cu_set (stdex::parser)
basic_date (stdex::parser)
basic_diagstream (stdex)
basic_diagstreambuf (stdex)
basic_dns_domain_char (stdex::parser)
basic_dns_name (stdex::parser)
basic_email_address (stdex::parser)
basic_emoticon (stdex::parser)
basic_eol (stdex::parser)
basic_fraction (stdex::parser)
basic_fstream (stdex)
basic_integer (stdex::parser)
basic_integer10 (stdex::parser)
basic_integer10ts (stdex::parser)
basic_integer16 (stdex::parser)
basic_iostreamfmt (stdex)
basic_ipv4_address (stdex::parser)
basic_ipv6_address (stdex::parser)
basic_ipv6_scope_id_char (stdex::parser)
basic_isharedstrstream (stdex)
basic_istreamfmt (stdex)
basic_iterations (stdex::parser)
basic_json_string (stdex::parser)
basic_mixed_numeral (stdex::parser)
basic_monetary_numeral (stdex::parser)
basic_noop (stdex::parser)
basic_ostreamfmt (stdex)
basic_parser (stdex::parser)
basic_permutation (stdex::parser)
basic_phone_number (stdex::parser)
basic_punct_cu (stdex::parser)
basic_roman_numeral (stdex::parser)
basic_scientific_numeral (stdex::parser)
basic_score (stdex::parser)
basic_sequence (stdex::parser)
basic_set (stdex::parser)
basic_sharedstrbuf (stdex)
basic_signed_numeral (stdex::parser)
basic_space_cu (stdex::parser)
basic_space_or_punct_cu (stdex::parser)
basic_string (stdex::parser)
basic_string_branch (stdex::parser)
basic_stringstream (stdex)
basic_time (stdex::parser)
basic_url (stdex::parser)
basic_url_password_char (stdex::parser)
basic_url_path (stdex::parser)
basic_url_path_char (stdex::parser)
basic_url_username_char (stdex::parser)
E
errno_error (stdex)
@@ -121,7 +121,7 @@ $(function() { diff --git a/classstdex_1_1base64__dec-members.html b/classstdex_1_1base64__dec-members.html index 762524237..ff0c9f194 100644 --- a/classstdex_1_1base64__dec-members.html +++ b/classstdex_1_1base64__dec-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/classstdex_1_1base64__dec.html b/classstdex_1_1base64__dec.html index bd24a973c..2c6c8eda1 100644 --- a/classstdex_1_1base64__dec.html +++ b/classstdex_1_1base64__dec.html @@ -230,7 +230,7 @@ template<class _Ty , class _Ax , class _Tchr > diff --git a/classstdex_1_1base64__enc-members.html b/classstdex_1_1base64__enc-members.html index a750cd2a6..9566e127f 100644 --- a/classstdex_1_1base64__enc-members.html +++ b/classstdex_1_1base64__enc-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1base64__enc.html b/classstdex_1_1base64__enc.html index 395ff2af5..cd2fad2a8 100644 --- a/classstdex_1_1base64__enc.html +++ b/classstdex_1_1base64__enc.html @@ -235,7 +235,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classstdex_1_1basic__diagstream-members.html b/classstdex_1_1basic__diagstream-members.html new file mode 100644 index 000000000..155bb13ca --- /dev/null +++ b/classstdex_1_1basic__diagstream-members.html @@ -0,0 +1,93 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::basic_diagstream< _Elem, _Traits > Member List
+
+
+ +

This is the complete list of members for stdex::basic_diagstream< _Elem, _Traits >, including all inherited members.

+ + + + + +
basic_diagstream(guest_stream *const *streams, size_t count) (defined in stdex::basic_diagstream< _Elem, _Traits >)stdex::basic_diagstream< _Elem, _Traits >inline
basic_diagstream(const _Iter first, const _Iter last) (defined in stdex::basic_diagstream< _Elem, _Traits >)stdex::basic_diagstream< _Elem, _Traits >inline
guest_stream typedef (defined in stdex::basic_diagstream< _Elem, _Traits >)stdex::basic_diagstream< _Elem, _Traits >
m_buf (defined in stdex::basic_diagstream< _Elem, _Traits >)stdex::basic_diagstream< _Elem, _Traits >protected
+ + + + diff --git a/classstdex_1_1basic__diagstream.html b/classstdex_1_1basic__diagstream.html new file mode 100644 index 000000000..9a44b1a57 --- /dev/null +++ b/classstdex_1_1basic__diagstream.html @@ -0,0 +1,132 @@ + + + + + + + +stdex: stdex::basic_diagstream< _Elem, _Traits > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::basic_diagstream< _Elem, _Traits > Class Template Reference
+
+
+ +

Diagnostic input/output stream. + More...

+ +

#include <stdex/ios.hpp>

+
+Inheritance diagram for stdex::basic_diagstream< _Elem, _Traits >:
+
+
+ +
+ + + + +

+Public Types

+using guest_stream = std::basic_iostream< _Elem, _Traits >
 
+ + + + + + +

+Public Member Functions

basic_diagstream (guest_stream *const *streams, size_t count)
 
+template<typename _Iter >
 basic_diagstream (const _Iter first, const _Iter last)
 
+ + + +

+Protected Attributes

+basic_diagstreambuf< _Elem, _Traits > m_buf
 
+

Detailed Description

+
template<class _Elem, class _Traits>
+class stdex::basic_diagstream< _Elem, _Traits >

Diagnostic input/output stream.

+

Verifies multiple input streams read the same data. Writes to multiple output streams the same data.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1basic__diagstream.png b/classstdex_1_1basic__diagstream.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1d62f47aea21653af88b97d65b7fbe7dd977d0 GIT binary patch literal 935 zcmV;Y16cftP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0009r zNklg_&7R!AP>ACOS!0 z(?lo9YI=mey*Ugr%i&r7;Q7q1(a)Lpp)c7y@3AA&P(MW$x(OEm#nWJ z9(~R5mgwbkkx#sP(3~u_@SE2sBst2XpIWa^-2t~C*SJaYk#ck++e*IC7?z7GG1xcy zcS{<#xVs1(dSXq|ujV2PD|3I29?o`U=x)?djz~!wqq4M+bj#iKA&Ddz)D9UuhZZKu zP7fOXF8VfFyiJDgZp03BY~EKEmFI}oB-zQK$Aq23-yL&FGY{#=LP`v}iqqIuR`p?4 zUqTO_;~jja>PEKJ&|kjmL*7D+=Xd>S^w;nD)~m;akNtUTtUV`Z6aJV$e!@GSB-zRT zU*D(pnBuhI_fh}GgeS>=QlAX=W9VzG-f?!pLu=x95BvYBPLiL}L?_8=n&>21O|{X@ z%t{IX{+_-7pr-1ge|?o@uZ#XoUX{Ht`ke3pP)`#b0IF%C13)!RbO5NPi4FkOG|>T| znkG5`RMSKUfNGlP08mX69RR9nq60uRO>_XLril&!e?ewuH3gHTikj$>R813IlB%gg z-+tuj$eyN_-w*F3^!Yrm!}!Y1ZEj0y>(Rz{(IsineZv>fpV@i2I1znG?fS8pw_LZ= z*PL#tT|N&>m;61~&2Ig5_}stke~ulJ)XAftTCY#t0k@D>BuR=o&`oM;S^pm^3HDo^FV@KZJ z>|^t6!h3&i0{IEw+)Gj~|9^d-+GE1ghTlj1*@Ty*AJY$=@t)g{p|91sGpAlS(vRzR8eWqAIZbp)s-}r9N!9d?Ze~_ee*gzwEjM=*#FhX6002ov JPDHLkV1oBX(v|=K literal 0 HcmV?d00001 diff --git a/classstdex_1_1basic__diagstreambuf-members.html b/classstdex_1_1basic__diagstreambuf-members.html new file mode 100644 index 000000000..c0e2c4ab2 --- /dev/null +++ b/classstdex_1_1basic__diagstreambuf-members.html @@ -0,0 +1,98 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::basic_diagstreambuf< _Elem, _Traits > Member List
+
+
+ +

This is the complete list of members for stdex::basic_diagstreambuf< _Elem, _Traits >, including all inherited members.

+ + + + + + + + + + +
basic_diagstreambuf(guest_stream *const *streams, size_t count) (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inline
basic_diagstreambuf(const _Iter first, const _Iter last) (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inline
guest_stream typedef (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >
m_streams (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >protected
overflow(int_type ch=_Traits::eof()) (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inlineprotectedvirtual
seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inlineprotectedvirtual
seekpos(pos_type pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inlineprotectedvirtual
sync() (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inlineprotectedvirtual
underflow() (defined in stdex::basic_diagstreambuf< _Elem, _Traits >)stdex::basic_diagstreambuf< _Elem, _Traits >inlineprotectedvirtual
+ + + + diff --git a/classstdex_1_1basic__diagstreambuf.html b/classstdex_1_1basic__diagstreambuf.html new file mode 100644 index 000000000..80d88bf06 --- /dev/null +++ b/classstdex_1_1basic__diagstreambuf.html @@ -0,0 +1,151 @@ + + + + + + + +stdex: stdex::basic_diagstreambuf< _Elem, _Traits > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::basic_diagstreambuf< _Elem, _Traits > Class Template Reference
+
+
+ +

Diagnostic input stream buffer. + More...

+ +

#include <stdex/ios.hpp>

+
+Inheritance diagram for stdex::basic_diagstreambuf< _Elem, _Traits >:
+
+
+ +
+ + + + +

+Public Types

+using guest_stream = std::basic_iostream< _Elem, _Traits >
 
+ + + + + + +

+Public Member Functions

basic_diagstreambuf (guest_stream *const *streams, size_t count)
 
+template<typename _Iter >
 basic_diagstreambuf (const _Iter first, const _Iter last)
 
+ + + + + + + + + + + +

+Protected Member Functions

+virtual pos_type seekoff (off_type off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
 
+virtual pos_type seekpos (pos_type pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
 
+virtual int_type underflow ()
 
+virtual int_type overflow (int_type ch=_Traits::eof())
 
+virtual int sync ()
 
+ + + +

+Protected Attributes

+std::vector< guest_stream * > m_streams
 
+

Detailed Description

+
template<class _Elem, class _Traits>
+class stdex::basic_diagstreambuf< _Elem, _Traits >

Diagnostic input stream buffer.

+

Verifies multiple input streams read the same data.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1basic__diagstreambuf.png b/classstdex_1_1basic__diagstreambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb00445198a18109173687262be1c1e02c7c288 GIT binary patch literal 988 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^12~w0{G~P8AV#OYY5z3IUYXRwxwY);$5`?zyf;ghQOYR@IsK3p=T zeDcTMWwV#eyY~0swVr#5N`Jo0n3MZ-VxH3^`>6i)eR**0!ZWEyOM#*1O!- zl;5zudi$2!l|C|Mzw7Tl|M~ilahk;P$+u;WnZ!@p1CBrQuXhtoGJE!!na;dezw#vS z=1Eu1-QHDx{5SJM8)Iu7wqrIxm3$K2ss8VDdE^&tF7K1w^@hVw-pCdhY%^K7Y;_Nt z&zfaezd)t3cSG@-B_=bGuJk)^2GqZe72t^J}`+%(rTX_jYc0$G diff --git a/classstdex_1_1basic__fstream.html b/classstdex_1_1basic__fstream.html index caed2db8c..2f982555c 100644 --- a/classstdex_1_1basic__fstream.html +++ b/classstdex_1_1basic__fstream.html @@ -168,7 +168,7 @@ template<class _Elem , class _Traits > diff --git a/classstdex_1_1basic__iostreamfmt-members.html b/classstdex_1_1basic__iostreamfmt-members.html index f4006229e..9ee699406 100644 --- a/classstdex_1_1basic__iostreamfmt-members.html +++ b/classstdex_1_1basic__iostreamfmt-members.html @@ -145,7 +145,7 @@ $(function() { diff --git a/classstdex_1_1basic__iostreamfmt.html b/classstdex_1_1basic__iostreamfmt.html index a9613f260..021c72ede 100644 --- a/classstdex_1_1basic__iostreamfmt.html +++ b/classstdex_1_1basic__iostreamfmt.html @@ -311,7 +311,7 @@ class stdex::basic_iostreamfmt< _Elem, _Traits >

Binary stream rea

diff --git a/classstdex_1_1basic__isharedstrstream-members.html b/classstdex_1_1basic__isharedstrstream-members.html index 439058292..ff4e9a934 100644 --- a/classstdex_1_1basic__isharedstrstream-members.html +++ b/classstdex_1_1basic__isharedstrstream-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1basic__isharedstrstream.html b/classstdex_1_1basic__isharedstrstream.html index aefed38cc..a27fbb8f5 100644 --- a/classstdex_1_1basic__isharedstrstream.html +++ b/classstdex_1_1basic__isharedstrstream.html @@ -106,7 +106,7 @@ Protected Attributes diff --git a/classstdex_1_1basic__istreamfmt-members.html b/classstdex_1_1basic__istreamfmt-members.html index 327a37de6..e2eb0a47b 100644 --- a/classstdex_1_1basic__istreamfmt-members.html +++ b/classstdex_1_1basic__istreamfmt-members.html @@ -113,7 +113,7 @@ $(function() { diff --git a/classstdex_1_1basic__istreamfmt.html b/classstdex_1_1basic__istreamfmt.html index 8da3a0675..a0f73e500 100644 --- a/classstdex_1_1basic__istreamfmt.html +++ b/classstdex_1_1basic__istreamfmt.html @@ -210,7 +210,7 @@ class stdex::basic_istreamfmt< _Elem, _Traits >

Binary stream read

diff --git a/classstdex_1_1basic__ostreamfmt-members.html b/classstdex_1_1basic__ostreamfmt-members.html index 4ef80b39a..6a16f68cd 100644 --- a/classstdex_1_1basic__ostreamfmt-members.html +++ b/classstdex_1_1basic__ostreamfmt-members.html @@ -114,7 +114,7 @@ $(function() { diff --git a/classstdex_1_1basic__ostreamfmt.html b/classstdex_1_1basic__ostreamfmt.html index 1ad1d14ee..dd293f7e7 100644 --- a/classstdex_1_1basic__ostreamfmt.html +++ b/classstdex_1_1basic__ostreamfmt.html @@ -323,7 +323,7 @@ template<class _Elem2 > diff --git a/classstdex_1_1basic__sharedstrbuf-members.html b/classstdex_1_1basic__sharedstrbuf-members.html index 5dea2ab3a..5c6fc6d92 100644 --- a/classstdex_1_1basic__sharedstrbuf-members.html +++ b/classstdex_1_1basic__sharedstrbuf-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1basic__sharedstrbuf.html b/classstdex_1_1basic__sharedstrbuf.html index cbcb2bee7..1a4804fd9 100644 --- a/classstdex_1_1basic__sharedstrbuf.html +++ b/classstdex_1_1basic__sharedstrbuf.html @@ -82,7 +82,7 @@ $(function() {
-

Shared-memory string buffer. +

Shared-memory string stream buffer. More...

#include <stdex/ios.hpp>

@@ -110,20 +110,20 @@ Protected Member Functions virtual pos_type seekoff (off_type off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)   - -virtual pos_type __CLR_OR_THIS_CALL seekpos (pos_type pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) -  + +virtual pos_type seekpos (pos_type pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out) + 

Detailed Description

template<class _Elem, class _Traits>
-class stdex::basic_sharedstrbuf< _Elem, _Traits >

Shared-memory string buffer.

+class stdex::basic_sharedstrbuf< _Elem, _Traits >

Shared-memory string stream buffer.


The documentation for this class was generated from the following file: diff --git a/classstdex_1_1basic__stringstream-members.html b/classstdex_1_1basic__stringstream-members.html index 138744372..414c894b8 100644 --- a/classstdex_1_1basic__stringstream-members.html +++ b/classstdex_1_1basic__stringstream-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1basic__stringstream.html b/classstdex_1_1basic__stringstream.html index 4c378a968..94d34bcea 100644 --- a/classstdex_1_1basic__stringstream.html +++ b/classstdex_1_1basic__stringstream.html @@ -309,7 +309,7 @@ template<class T > diff --git a/classstdex_1_1errno__error-members.html b/classstdex_1_1errno__error-members.html index 413233244..a7a59409d 100644 --- a/classstdex_1_1errno__error-members.html +++ b/classstdex_1_1errno__error-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1errno__error.html b/classstdex_1_1errno__error.html index 6d35555bb..7fe0029f4 100644 --- a/classstdex_1_1errno__error.html +++ b/classstdex_1_1errno__error.html @@ -286,7 +286,7 @@ errno_t m_num diff --git a/classstdex_1_1global__progress-members.html b/classstdex_1_1global__progress-members.html index 5d47a20a2..f98f66453 100644 --- a/classstdex_1_1global__progress-members.html +++ b/classstdex_1_1global__progress-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/classstdex_1_1global__progress.html b/classstdex_1_1global__progress.html index 18625c533..9f995d2e7 100644 --- a/classstdex_1_1global__progress.html +++ b/classstdex_1_1global__progress.html @@ -562,7 +562,7 @@ template<class T > diff --git a/classstdex_1_1hex__dec-members.html b/classstdex_1_1hex__dec-members.html index 4515689dd..f7b75dc3a 100644 --- a/classstdex_1_1hex__dec-members.html +++ b/classstdex_1_1hex__dec-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1hex__dec.html b/classstdex_1_1hex__dec.html index a633aaf81..dd7fc48ac 100644 --- a/classstdex_1_1hex__dec.html +++ b/classstdex_1_1hex__dec.html @@ -221,7 +221,7 @@ template<class _Ty , class _Ax , class _Tchr > diff --git a/classstdex_1_1hex__enc-members.html b/classstdex_1_1hex__enc-members.html index 2a5b8688f..24f8ea849 100644 --- a/classstdex_1_1hex__enc-members.html +++ b/classstdex_1_1hex__enc-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classstdex_1_1hex__enc.html b/classstdex_1_1hex__enc.html index 14fec7eb1..9b85b3d71 100644 --- a/classstdex_1_1hex__enc.html +++ b/classstdex_1_1hex__enc.html @@ -198,7 +198,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classstdex_1_1idrec_1_1record-members.html b/classstdex_1_1idrec_1_1record-members.html index 65917627d..16737ded3 100644 --- a/classstdex_1_1idrec_1_1record-members.html +++ b/classstdex_1_1idrec_1_1record-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1idrec_1_1record.html b/classstdex_1_1idrec_1_1record.html index dbc4102d1..dbc4dfcc5 100644 --- a/classstdex_1_1idrec_1_1record.html +++ b/classstdex_1_1idrec_1_1record.html @@ -380,7 +380,7 @@ template<class T , class T_ID , const T_ID ID, class T_SIZE , unsigned int AL diff --git a/classstdex_1_1lazy__progress-members.html b/classstdex_1_1lazy__progress-members.html index cdc07c344..d2b785d22 100644 --- a/classstdex_1_1lazy__progress-members.html +++ b/classstdex_1_1lazy__progress-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/classstdex_1_1lazy__progress.html b/classstdex_1_1lazy__progress.html index e071d897f..c8ee3efcf 100644 --- a/classstdex_1_1lazy__progress.html +++ b/classstdex_1_1lazy__progress.html @@ -285,7 +285,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__angle-members.html b/classstdex_1_1parser_1_1basic__angle-members.html index fa4c1a537..f0fff2743 100644 --- a/classstdex_1_1parser_1_1basic__angle-members.html +++ b/classstdex_1_1parser_1_1basic__angle-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__angle.html b/classstdex_1_1parser_1_1basic__angle.html index 3f4c99484..2368e18dd 100644 --- a/classstdex_1_1parser_1_1basic__angle.html +++ b/classstdex_1_1parser_1_1basic__angle.html @@ -250,7 +250,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__any__cu-members.html b/classstdex_1_1parser_1_1basic__any__cu-members.html index eddf76f67..310e95537 100644 --- a/classstdex_1_1parser_1_1basic__any__cu-members.html +++ b/classstdex_1_1parser_1_1basic__any__cu-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__any__cu.html b/classstdex_1_1parser_1_1basic__any__cu.html index 7e3c102e3..2af068305 100644 --- a/classstdex_1_1parser_1_1basic__any__cu.html +++ b/classstdex_1_1parser_1_1basic__any__cu.html @@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__bol-members.html b/classstdex_1_1parser_1_1basic__bol-members.html index ea7ab4060..a92cccc97 100644 --- a/classstdex_1_1parser_1_1basic__bol-members.html +++ b/classstdex_1_1parser_1_1basic__bol-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__bol.html b/classstdex_1_1parser_1_1basic__bol.html index 6884c90b5..419f9961f 100644 --- a/classstdex_1_1parser_1_1basic__bol.html +++ b/classstdex_1_1parser_1_1basic__bol.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__branch-members.html b/classstdex_1_1parser_1_1basic__branch-members.html index fb949a6a4..12adec440 100644 --- a/classstdex_1_1parser_1_1basic__branch-members.html +++ b/classstdex_1_1parser_1_1basic__branch-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__branch.html b/classstdex_1_1parser_1_1basic__branch.html index 790a1976e..ab660ad28 100644 --- a/classstdex_1_1parser_1_1basic__branch.html +++ b/classstdex_1_1parser_1_1basic__branch.html @@ -261,7 +261,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__chemical__formula-members.html b/classstdex_1_1parser_1_1basic__chemical__formula-members.html index bf3463517..3fa1847b6 100644 --- a/classstdex_1_1parser_1_1basic__chemical__formula-members.html +++ b/classstdex_1_1parser_1_1basic__chemical__formula-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__chemical__formula.html b/classstdex_1_1parser_1_1basic__chemical__formula.html index d0c712371..12263b22b 100644 --- a/classstdex_1_1parser_1_1basic__chemical__formula.html +++ b/classstdex_1_1parser_1_1basic__chemical__formula.html @@ -245,7 +245,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__cu-members.html b/classstdex_1_1parser_1_1basic__cu-members.html index 633e78cd0..f5f09884b 100644 --- a/classstdex_1_1parser_1_1basic__cu-members.html +++ b/classstdex_1_1parser_1_1basic__cu-members.html @@ -94,7 +94,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__cu.html b/classstdex_1_1parser_1_1basic__cu.html index a61fa8549..107382448 100644 --- a/classstdex_1_1parser_1_1basic__cu.html +++ b/classstdex_1_1parser_1_1basic__cu.html @@ -204,7 +204,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__cu__set-members.html b/classstdex_1_1parser_1_1basic__cu__set-members.html index 9de24a3c6..16ee75b7c 100644 --- a/classstdex_1_1parser_1_1basic__cu__set-members.html +++ b/classstdex_1_1parser_1_1basic__cu__set-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__cu__set.html b/classstdex_1_1parser_1_1basic__cu__set.html index f0a4d2fcf..4692d964e 100644 --- a/classstdex_1_1parser_1_1basic__cu__set.html +++ b/classstdex_1_1parser_1_1basic__cu__set.html @@ -218,7 +218,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__date-members.html b/classstdex_1_1parser_1_1basic__date-members.html index cb25b9105..6196c4085 100644 --- a/classstdex_1_1parser_1_1basic__date-members.html +++ b/classstdex_1_1parser_1_1basic__date-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__date.html b/classstdex_1_1parser_1_1basic__date.html index 074c311de..1b58c058d 100644 --- a/classstdex_1_1parser_1_1basic__date.html +++ b/classstdex_1_1parser_1_1basic__date.html @@ -258,7 +258,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char-members.html b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html index f918c446a..b0e743aee 100644 --- a/classstdex_1_1parser_1_1basic__dns__domain__char-members.html +++ b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html @@ -94,7 +94,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char.html b/classstdex_1_1parser_1_1basic__dns__domain__char.html index 7b80f4cc2..f28219775 100644 --- a/classstdex_1_1parser_1_1basic__dns__domain__char.html +++ b/classstdex_1_1parser_1_1basic__dns__domain__char.html @@ -206,7 +206,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__dns__name-members.html b/classstdex_1_1parser_1_1basic__dns__name-members.html index ac7e0d413..a22393c84 100644 --- a/classstdex_1_1parser_1_1basic__dns__name-members.html +++ b/classstdex_1_1parser_1_1basic__dns__name-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__dns__name.html b/classstdex_1_1parser_1_1basic__dns__name.html index 0b089c748..2ca9dcd69 100644 --- a/classstdex_1_1parser_1_1basic__dns__name.html +++ b/classstdex_1_1parser_1_1basic__dns__name.html @@ -208,7 +208,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__email__address-members.html b/classstdex_1_1parser_1_1basic__email__address-members.html index 7724dd417..143600022 100644 --- a/classstdex_1_1parser_1_1basic__email__address-members.html +++ b/classstdex_1_1parser_1_1basic__email__address-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__email__address.html b/classstdex_1_1parser_1_1basic__email__address.html index b4551b043..b9dac82d8 100644 --- a/classstdex_1_1parser_1_1basic__email__address.html +++ b/classstdex_1_1parser_1_1basic__email__address.html @@ -251,7 +251,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__emoticon-members.html b/classstdex_1_1parser_1_1basic__emoticon-members.html index 197cc88b1..ad0ea3e71 100644 --- a/classstdex_1_1parser_1_1basic__emoticon-members.html +++ b/classstdex_1_1parser_1_1basic__emoticon-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__emoticon.html b/classstdex_1_1parser_1_1basic__emoticon.html index 180505da5..9f06434af 100644 --- a/classstdex_1_1parser_1_1basic__emoticon.html +++ b/classstdex_1_1parser_1_1basic__emoticon.html @@ -249,7 +249,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__eol-members.html b/classstdex_1_1parser_1_1basic__eol-members.html index c5af71930..80701bb52 100644 --- a/classstdex_1_1parser_1_1basic__eol-members.html +++ b/classstdex_1_1parser_1_1basic__eol-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__eol.html b/classstdex_1_1parser_1_1basic__eol.html index c99be12ec..ec1e693b7 100644 --- a/classstdex_1_1parser_1_1basic__eol.html +++ b/classstdex_1_1parser_1_1basic__eol.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__fraction-members.html b/classstdex_1_1parser_1_1basic__fraction-members.html index 28453295e..6e6884a3c 100644 --- a/classstdex_1_1parser_1_1basic__fraction-members.html +++ b/classstdex_1_1parser_1_1basic__fraction-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__fraction.html b/classstdex_1_1parser_1_1basic__fraction.html index fac03fec3..57924a245 100644 --- a/classstdex_1_1parser_1_1basic__fraction.html +++ b/classstdex_1_1parser_1_1basic__fraction.html @@ -238,7 +238,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer-members.html b/classstdex_1_1parser_1_1basic__integer-members.html index 2d5c2d5f6..39b9453f3 100644 --- a/classstdex_1_1parser_1_1basic__integer-members.html +++ b/classstdex_1_1parser_1_1basic__integer-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__integer.html b/classstdex_1_1parser_1_1basic__integer.html index 9a194983f..da0effeeb 100644 --- a/classstdex_1_1parser_1_1basic__integer.html +++ b/classstdex_1_1parser_1_1basic__integer.html @@ -183,7 +183,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer10-members.html b/classstdex_1_1parser_1_1basic__integer10-members.html index 95f63c441..fcc8abde2 100644 --- a/classstdex_1_1parser_1_1basic__integer10-members.html +++ b/classstdex_1_1parser_1_1basic__integer10-members.html @@ -104,7 +104,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__integer10.html b/classstdex_1_1parser_1_1basic__integer10.html index 1b31c6f03..1c25980d9 100644 --- a/classstdex_1_1parser_1_1basic__integer10.html +++ b/classstdex_1_1parser_1_1basic__integer10.html @@ -240,7 +240,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer10ts-members.html b/classstdex_1_1parser_1_1basic__integer10ts-members.html index 71359a2df..53c014c03 100644 --- a/classstdex_1_1parser_1_1basic__integer10ts-members.html +++ b/classstdex_1_1parser_1_1basic__integer10ts-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__integer10ts.html b/classstdex_1_1parser_1_1basic__integer10ts.html index 607d47a4e..fed6fd65c 100644 --- a/classstdex_1_1parser_1_1basic__integer10ts.html +++ b/classstdex_1_1parser_1_1basic__integer10ts.html @@ -256,7 +256,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer16-members.html b/classstdex_1_1parser_1_1basic__integer16-members.html index 7660cb80b..bbd68a036 100644 --- a/classstdex_1_1parser_1_1basic__integer16-members.html +++ b/classstdex_1_1parser_1_1basic__integer16-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__integer16.html b/classstdex_1_1parser_1_1basic__integer16.html index 6886004c6..87ad40bdc 100644 --- a/classstdex_1_1parser_1_1basic__integer16.html +++ b/classstdex_1_1parser_1_1basic__integer16.html @@ -258,7 +258,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv4__address-members.html b/classstdex_1_1parser_1_1basic__ipv4__address-members.html index 5b44ee65b..035225e97 100644 --- a/classstdex_1_1parser_1_1basic__ipv4__address-members.html +++ b/classstdex_1_1parser_1_1basic__ipv4__address-members.html @@ -105,7 +105,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__ipv4__address.html b/classstdex_1_1parser_1_1basic__ipv4__address.html index fd0498789..7e1f188d0 100644 --- a/classstdex_1_1parser_1_1basic__ipv4__address.html +++ b/classstdex_1_1parser_1_1basic__ipv4__address.html @@ -271,7 +271,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv6__address-members.html b/classstdex_1_1parser_1_1basic__ipv6__address-members.html index ef84bb47a..796ecb604 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__address-members.html +++ b/classstdex_1_1parser_1_1basic__ipv6__address-members.html @@ -113,7 +113,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__ipv6__address.html b/classstdex_1_1parser_1_1basic__ipv6__address.html index 87cae25c1..903a4e8b3 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__address.html +++ b/classstdex_1_1parser_1_1basic__ipv6__address.html @@ -296,7 +296,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html index 674fd9074..217585dab 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html index 7cf5cd79f..4a374f770 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html @@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__iterations-members.html b/classstdex_1_1parser_1_1basic__iterations-members.html index c2c316cc6..0a7ae26b8 100644 --- a/classstdex_1_1parser_1_1basic__iterations-members.html +++ b/classstdex_1_1parser_1_1basic__iterations-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__iterations.html b/classstdex_1_1parser_1_1basic__iterations.html index d2b520aef..efb6d735a 100644 --- a/classstdex_1_1parser_1_1basic__iterations.html +++ b/classstdex_1_1parser_1_1basic__iterations.html @@ -214,7 +214,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__json__string-members.html b/classstdex_1_1parser_1_1basic__json__string-members.html index 13215f0ef..79b6f4937 100644 --- a/classstdex_1_1parser_1_1basic__json__string-members.html +++ b/classstdex_1_1parser_1_1basic__json__string-members.html @@ -104,7 +104,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__json__string.html b/classstdex_1_1parser_1_1basic__json__string.html index 2ad9225f9..6326aa41b 100644 --- a/classstdex_1_1parser_1_1basic__json__string.html +++ b/classstdex_1_1parser_1_1basic__json__string.html @@ -266,7 +266,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral-members.html b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html index ec052f143..87a0d4eff 100644 --- a/classstdex_1_1parser_1_1basic__mixed__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral.html b/classstdex_1_1parser_1_1basic__mixed__numeral.html index 37bf76b73..09b2a6214 100644 --- a/classstdex_1_1parser_1_1basic__mixed__numeral.html +++ b/classstdex_1_1parser_1_1basic__mixed__numeral.html @@ -253,7 +253,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral-members.html b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html index ffc8c3176..c01aadc0f 100644 --- a/classstdex_1_1parser_1_1basic__monetary__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral.html b/classstdex_1_1parser_1_1basic__monetary__numeral.html index ba759aa98..b5c7a107c 100644 --- a/classstdex_1_1parser_1_1basic__monetary__numeral.html +++ b/classstdex_1_1parser_1_1basic__monetary__numeral.html @@ -257,7 +257,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__noop-members.html b/classstdex_1_1parser_1_1basic__noop-members.html index 0a64ffe57..3e7c56d7b 100644 --- a/classstdex_1_1parser_1_1basic__noop-members.html +++ b/classstdex_1_1parser_1_1basic__noop-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__noop.html b/classstdex_1_1parser_1_1basic__noop.html index 52c72ad44..205084f47 100644 --- a/classstdex_1_1parser_1_1basic__noop.html +++ b/classstdex_1_1parser_1_1basic__noop.html @@ -191,7 +191,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__parser-members.html b/classstdex_1_1parser_1_1basic__parser-members.html index 3883509e9..d64489615 100644 --- a/classstdex_1_1parser_1_1basic__parser-members.html +++ b/classstdex_1_1parser_1_1basic__parser-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__parser.html b/classstdex_1_1parser_1_1basic__parser.html index 1c6d0f7fc..f303b188b 100644 --- a/classstdex_1_1parser_1_1basic__parser.html +++ b/classstdex_1_1parser_1_1basic__parser.html @@ -183,7 +183,7 @@ class stdex::parser::basic_parser< T >

Base template for all parse

diff --git a/classstdex_1_1parser_1_1basic__permutation-members.html b/classstdex_1_1parser_1_1basic__permutation-members.html index db16122b7..ebcf0d43a 100644 --- a/classstdex_1_1parser_1_1basic__permutation-members.html +++ b/classstdex_1_1parser_1_1basic__permutation-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__permutation.html b/classstdex_1_1parser_1_1basic__permutation.html index c95429c98..6a37d817b 100644 --- a/classstdex_1_1parser_1_1basic__permutation.html +++ b/classstdex_1_1parser_1_1basic__permutation.html @@ -222,7 +222,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__phone__number-members.html b/classstdex_1_1parser_1_1basic__phone__number-members.html index 9316d04f6..284c0f66b 100644 --- a/classstdex_1_1parser_1_1basic__phone__number-members.html +++ b/classstdex_1_1parser_1_1basic__phone__number-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__phone__number.html b/classstdex_1_1parser_1_1basic__phone__number.html index 1adef71a4..c52312412 100644 --- a/classstdex_1_1parser_1_1basic__phone__number.html +++ b/classstdex_1_1parser_1_1basic__phone__number.html @@ -252,7 +252,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__punct__cu-members.html b/classstdex_1_1parser_1_1basic__punct__cu-members.html index e554e8c6d..e112aa7f2 100644 --- a/classstdex_1_1parser_1_1basic__punct__cu-members.html +++ b/classstdex_1_1parser_1_1basic__punct__cu-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__punct__cu.html b/classstdex_1_1parser_1_1basic__punct__cu.html index 21500449f..2d488f950 100644 --- a/classstdex_1_1parser_1_1basic__punct__cu.html +++ b/classstdex_1_1parser_1_1basic__punct__cu.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__roman__numeral-members.html b/classstdex_1_1parser_1_1basic__roman__numeral-members.html index a01213756..47a292835 100644 --- a/classstdex_1_1parser_1_1basic__roman__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__roman__numeral-members.html @@ -103,7 +103,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__roman__numeral.html b/classstdex_1_1parser_1_1basic__roman__numeral.html index 6726c3e62..804179de4 100644 --- a/classstdex_1_1parser_1_1basic__roman__numeral.html +++ b/classstdex_1_1parser_1_1basic__roman__numeral.html @@ -237,7 +237,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral-members.html b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html index 3b92dd69e..b0c8fa3a8 100644 --- a/classstdex_1_1parser_1_1basic__scientific__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html @@ -103,7 +103,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral.html b/classstdex_1_1parser_1_1basic__scientific__numeral.html index aab2c47a7..c2dc60058 100644 --- a/classstdex_1_1parser_1_1basic__scientific__numeral.html +++ b/classstdex_1_1parser_1_1basic__scientific__numeral.html @@ -273,7 +273,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__score-members.html b/classstdex_1_1parser_1_1basic__score-members.html index 0156a224e..02fd4c489 100644 --- a/classstdex_1_1parser_1_1basic__score-members.html +++ b/classstdex_1_1parser_1_1basic__score-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__score.html b/classstdex_1_1parser_1_1basic__score.html index 4b0c458f8..fb0e48cde 100644 --- a/classstdex_1_1parser_1_1basic__score.html +++ b/classstdex_1_1parser_1_1basic__score.html @@ -242,7 +242,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__sequence-members.html b/classstdex_1_1parser_1_1basic__sequence-members.html index 353e0a878..2ed585b96 100644 --- a/classstdex_1_1parser_1_1basic__sequence-members.html +++ b/classstdex_1_1parser_1_1basic__sequence-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__sequence.html b/classstdex_1_1parser_1_1basic__sequence.html index 1d4491be8..9a4096cbd 100644 --- a/classstdex_1_1parser_1_1basic__sequence.html +++ b/classstdex_1_1parser_1_1basic__sequence.html @@ -215,7 +215,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__set-members.html b/classstdex_1_1parser_1_1basic__set-members.html index fb2113f94..5708fe480 100644 --- a/classstdex_1_1parser_1_1basic__set-members.html +++ b/classstdex_1_1parser_1_1basic__set-members.html @@ -94,7 +94,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__set.html b/classstdex_1_1parser_1_1basic__set.html index 1e43ab153..1e0a180b6 100644 --- a/classstdex_1_1parser_1_1basic__set.html +++ b/classstdex_1_1parser_1_1basic__set.html @@ -229,7 +229,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__signed__numeral-members.html b/classstdex_1_1parser_1_1basic__signed__numeral-members.html index 421602400..8b8264485 100644 --- a/classstdex_1_1parser_1_1basic__signed__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__signed__numeral-members.html @@ -96,7 +96,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__signed__numeral.html b/classstdex_1_1parser_1_1basic__signed__numeral.html index 6faf650a5..497f5e017 100644 --- a/classstdex_1_1parser_1_1basic__signed__numeral.html +++ b/classstdex_1_1parser_1_1basic__signed__numeral.html @@ -245,7 +245,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__space__cu-members.html b/classstdex_1_1parser_1_1basic__space__cu-members.html index 4acdcb1eb..32fa79d02 100644 --- a/classstdex_1_1parser_1_1basic__space__cu-members.html +++ b/classstdex_1_1parser_1_1basic__space__cu-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__space__cu.html b/classstdex_1_1parser_1_1basic__space__cu.html index e8f2f7d08..d2ca04af8 100644 --- a/classstdex_1_1parser_1_1basic__space__cu.html +++ b/classstdex_1_1parser_1_1basic__space__cu.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html b/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html index 055f9be8b..4b79afd0d 100644 --- a/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html +++ b/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu.html b/classstdex_1_1parser_1_1basic__space__or__punct__cu.html index 221ddae30..5d98783e2 100644 --- a/classstdex_1_1parser_1_1basic__space__or__punct__cu.html +++ b/classstdex_1_1parser_1_1basic__space__or__punct__cu.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__string-members.html b/classstdex_1_1parser_1_1basic__string-members.html index 160d9653f..e74ac4f0e 100644 --- a/classstdex_1_1parser_1_1basic__string-members.html +++ b/classstdex_1_1parser_1_1basic__string-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__string.html b/classstdex_1_1parser_1_1basic__string.html index 5adb97282..9021b3f45 100644 --- a/classstdex_1_1parser_1_1basic__string.html +++ b/classstdex_1_1parser_1_1basic__string.html @@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__string__branch-members.html b/classstdex_1_1parser_1_1basic__string__branch-members.html index d14b850a0..6a8be4d72 100644 --- a/classstdex_1_1parser_1_1basic__string__branch-members.html +++ b/classstdex_1_1parser_1_1basic__string__branch-members.html @@ -104,7 +104,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__string__branch.html b/classstdex_1_1parser_1_1basic__string__branch.html index b76e23a99..7db4d486f 100644 --- a/classstdex_1_1parser_1_1basic__string__branch.html +++ b/classstdex_1_1parser_1_1basic__string__branch.html @@ -193,7 +193,7 @@ class stdex::parser::basic_string_branch< T, T_parser >

Test for a

diff --git a/classstdex_1_1parser_1_1basic__time-members.html b/classstdex_1_1parser_1_1basic__time-members.html index 4f9be6445..aef9e3c21 100644 --- a/classstdex_1_1parser_1_1basic__time-members.html +++ b/classstdex_1_1parser_1_1basic__time-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__time.html b/classstdex_1_1parser_1_1basic__time.html index 09dad5303..93cf26dd7 100644 --- a/classstdex_1_1parser_1_1basic__time.html +++ b/classstdex_1_1parser_1_1basic__time.html @@ -248,7 +248,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url-members.html b/classstdex_1_1parser_1_1basic__url-members.html index d4c4abdaf..9636286c0 100644 --- a/classstdex_1_1parser_1_1basic__url-members.html +++ b/classstdex_1_1parser_1_1basic__url-members.html @@ -108,7 +108,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__url.html b/classstdex_1_1parser_1_1basic__url.html index 87d2967d0..739a60caf 100644 --- a/classstdex_1_1parser_1_1basic__url.html +++ b/classstdex_1_1parser_1_1basic__url.html @@ -278,7 +278,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__password__char-members.html b/classstdex_1_1parser_1_1basic__url__password__char-members.html index 7d2475bb5..7827741cb 100644 --- a/classstdex_1_1parser_1_1basic__url__password__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__password__char-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__url__password__char.html b/classstdex_1_1parser_1_1basic__url__password__char.html index 345b1d618..91108092f 100644 --- a/classstdex_1_1parser_1_1basic__url__password__char.html +++ b/classstdex_1_1parser_1_1basic__url__password__char.html @@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__path-members.html b/classstdex_1_1parser_1_1basic__url__path-members.html index c2b022fb1..d62139fb3 100644 --- a/classstdex_1_1parser_1_1basic__url__path-members.html +++ b/classstdex_1_1parser_1_1basic__url__path-members.html @@ -98,7 +98,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__url__path.html b/classstdex_1_1parser_1_1basic__url__path.html index dd7627041..997a31bf3 100644 --- a/classstdex_1_1parser_1_1basic__url__path.html +++ b/classstdex_1_1parser_1_1basic__url__path.html @@ -248,7 +248,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__path__char-members.html b/classstdex_1_1parser_1_1basic__url__path__char-members.html index c417312ac..eaab4193e 100644 --- a/classstdex_1_1parser_1_1basic__url__path__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__path__char-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__url__path__char.html b/classstdex_1_1parser_1_1basic__url__path__char.html index cf5e3c721..48a227aa6 100644 --- a/classstdex_1_1parser_1_1basic__url__path__char.html +++ b/classstdex_1_1parser_1_1basic__url__path__char.html @@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__username__char-members.html b/classstdex_1_1parser_1_1basic__url__username__char-members.html index 4e3fc86c2..03566801a 100644 --- a/classstdex_1_1parser_1_1basic__url__username__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__username__char-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1basic__url__username__char.html b/classstdex_1_1parser_1_1basic__url__username__char.html index 3f9fa37bf..5b2982fde 100644 --- a/classstdex_1_1parser_1_1basic__url__username__char.html +++ b/classstdex_1_1parser_1_1basic__url__username__char.html @@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1http__agent-members.html b/classstdex_1_1parser_1_1http__agent-members.html index 7e22b5185..6d1b9bd54 100644 --- a/classstdex_1_1parser_1_1http__agent-members.html +++ b/classstdex_1_1parser_1_1http__agent-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__agent.html b/classstdex_1_1parser_1_1http__agent.html index 203bb3cb7..785404261 100644 --- a/classstdex_1_1parser_1_1http__agent.html +++ b/classstdex_1_1parser_1_1http__agent.html @@ -226,7 +226,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__any__type-members.html b/classstdex_1_1parser_1_1http__any__type-members.html index 6ad71d13c..c6efd7e29 100644 --- a/classstdex_1_1parser_1_1http__any__type-members.html +++ b/classstdex_1_1parser_1_1http__any__type-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__any__type.html b/classstdex_1_1parser_1_1http__any__type.html index 968977383..741f57342 100644 --- a/classstdex_1_1parser_1_1http__any__type.html +++ b/classstdex_1_1parser_1_1http__any__type.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__asterisk-members.html b/classstdex_1_1parser_1_1http__asterisk-members.html index ed467c03c..3b56923c9 100644 --- a/classstdex_1_1parser_1_1http__asterisk-members.html +++ b/classstdex_1_1parser_1_1http__asterisk-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__asterisk.html b/classstdex_1_1parser_1_1http__asterisk.html index de9d7826d..aa69dc2af 100644 --- a/classstdex_1_1parser_1_1http__asterisk.html +++ b/classstdex_1_1parser_1_1http__asterisk.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__cookie-members.html b/classstdex_1_1parser_1_1http__cookie-members.html index e043ebc3d..17148179b 100644 --- a/classstdex_1_1parser_1_1http__cookie-members.html +++ b/classstdex_1_1parser_1_1http__cookie-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__cookie.html b/classstdex_1_1parser_1_1http__cookie.html index 486171491..43fd8d9a9 100644 --- a/classstdex_1_1parser_1_1http__cookie.html +++ b/classstdex_1_1parser_1_1http__cookie.html @@ -236,7 +236,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__cookie__parameter-members.html b/classstdex_1_1parser_1_1http__cookie__parameter-members.html index c01b72ff2..30a865333 100644 --- a/classstdex_1_1parser_1_1http__cookie__parameter-members.html +++ b/classstdex_1_1parser_1_1http__cookie__parameter-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__cookie__parameter.html b/classstdex_1_1parser_1_1http__cookie__parameter.html index be82194c1..863b11e6b 100644 --- a/classstdex_1_1parser_1_1http__cookie__parameter.html +++ b/classstdex_1_1parser_1_1http__cookie__parameter.html @@ -230,7 +230,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__header-members.html b/classstdex_1_1parser_1_1http__header-members.html index 97a2571ab..8a39e52a6 100644 --- a/classstdex_1_1parser_1_1http__header-members.html +++ b/classstdex_1_1parser_1_1http__header-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__header.html b/classstdex_1_1parser_1_1http__header.html index 7c179ff46..0cbf1d83b 100644 --- a/classstdex_1_1parser_1_1http__header.html +++ b/classstdex_1_1parser_1_1http__header.html @@ -230,7 +230,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__language-members.html b/classstdex_1_1parser_1_1http__language-members.html index 6c5724cb6..1a7216a68 100644 --- a/classstdex_1_1parser_1_1http__language-members.html +++ b/classstdex_1_1parser_1_1http__language-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__language.html b/classstdex_1_1parser_1_1http__language.html index 32416d3a2..1b868266f 100644 --- a/classstdex_1_1parser_1_1http__language.html +++ b/classstdex_1_1parser_1_1http__language.html @@ -223,7 +223,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__line__break-members.html b/classstdex_1_1parser_1_1http__line__break-members.html index 90cfad813..47439f755 100644 --- a/classstdex_1_1parser_1_1http__line__break-members.html +++ b/classstdex_1_1parser_1_1http__line__break-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__line__break.html b/classstdex_1_1parser_1_1http__line__break.html index bfc18ee88..10a8714b4 100644 --- a/classstdex_1_1parser_1_1http__line__break.html +++ b/classstdex_1_1parser_1_1http__line__break.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__media__range-members.html b/classstdex_1_1parser_1_1http__media__range-members.html index e9af118c2..a74b35954 100644 --- a/classstdex_1_1parser_1_1http__media__range-members.html +++ b/classstdex_1_1parser_1_1http__media__range-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__media__range.html b/classstdex_1_1parser_1_1http__media__range.html index 80b96198d..e318a5c9a 100644 --- a/classstdex_1_1parser_1_1http__media__range.html +++ b/classstdex_1_1parser_1_1http__media__range.html @@ -231,7 +231,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__media__type-members.html b/classstdex_1_1parser_1_1http__media__type-members.html index 2ca72706e..62347fa5e 100644 --- a/classstdex_1_1parser_1_1http__media__type-members.html +++ b/classstdex_1_1parser_1_1http__media__type-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__media__type.html b/classstdex_1_1parser_1_1http__media__type.html index 410fd0d36..dd705780c 100644 --- a/classstdex_1_1parser_1_1http__media__type.html +++ b/classstdex_1_1parser_1_1http__media__type.html @@ -239,7 +239,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__parameter-members.html b/classstdex_1_1parser_1_1http__parameter-members.html index c61c6724b..93878a671 100644 --- a/classstdex_1_1parser_1_1http__parameter-members.html +++ b/classstdex_1_1parser_1_1http__parameter-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__parameter.html b/classstdex_1_1parser_1_1http__parameter.html index fedf674e3..274b3ce92 100644 --- a/classstdex_1_1parser_1_1http__parameter.html +++ b/classstdex_1_1parser_1_1http__parameter.html @@ -232,7 +232,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__protocol-members.html b/classstdex_1_1parser_1_1http__protocol-members.html index 7f62570fc..014cb58ea 100644 --- a/classstdex_1_1parser_1_1http__protocol-members.html +++ b/classstdex_1_1parser_1_1http__protocol-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__protocol.html b/classstdex_1_1parser_1_1http__protocol.html index 63c55b9d8..4ca0814e3 100644 --- a/classstdex_1_1parser_1_1http__protocol.html +++ b/classstdex_1_1parser_1_1http__protocol.html @@ -236,7 +236,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__quoted__string-members.html b/classstdex_1_1parser_1_1http__quoted__string-members.html index e239413d8..aefed4b33 100644 --- a/classstdex_1_1parser_1_1http__quoted__string-members.html +++ b/classstdex_1_1parser_1_1http__quoted__string-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__quoted__string.html b/classstdex_1_1parser_1_1http__quoted__string.html index 4e89e9cec..1a564bb32 100644 --- a/classstdex_1_1parser_1_1http__quoted__string.html +++ b/classstdex_1_1parser_1_1http__quoted__string.html @@ -228,7 +228,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__request-members.html b/classstdex_1_1parser_1_1http__request-members.html index be1b12681..e7c4138fa 100644 --- a/classstdex_1_1parser_1_1http__request-members.html +++ b/classstdex_1_1parser_1_1http__request-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__request.html b/classstdex_1_1parser_1_1http__request.html index 403639e46..12cd952e5 100644 --- a/classstdex_1_1parser_1_1http__request.html +++ b/classstdex_1_1parser_1_1http__request.html @@ -236,7 +236,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__space-members.html b/classstdex_1_1parser_1_1http__space-members.html index a1bc8eb73..fb5f5bbaf 100644 --- a/classstdex_1_1parser_1_1http__space-members.html +++ b/classstdex_1_1parser_1_1http__space-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__space.html b/classstdex_1_1parser_1_1http__space.html index af84f8644..384ee3372 100644 --- a/classstdex_1_1parser_1_1http__space.html +++ b/classstdex_1_1parser_1_1http__space.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1http__text__char-members.html b/classstdex_1_1parser_1_1http__text__char-members.html index 9418523ef..03191d464 100644 --- a/classstdex_1_1parser_1_1http__text__char-members.html +++ b/classstdex_1_1parser_1_1http__text__char-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__text__char.html b/classstdex_1_1parser_1_1http__text__char.html index 7613fe415..9d33b7843 100644 --- a/classstdex_1_1parser_1_1http__text__char.html +++ b/classstdex_1_1parser_1_1http__text__char.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1http__token-members.html b/classstdex_1_1parser_1_1http__token-members.html index ca5dd1e51..615700843 100644 --- a/classstdex_1_1parser_1_1http__token-members.html +++ b/classstdex_1_1parser_1_1http__token-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__token.html b/classstdex_1_1parser_1_1http__token.html index b0a817dd3..eea4f5322 100644 --- a/classstdex_1_1parser_1_1http__token.html +++ b/classstdex_1_1parser_1_1http__token.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url-members.html b/classstdex_1_1parser_1_1http__url-members.html index bb3c1999e..b9aafe7e6 100644 --- a/classstdex_1_1parser_1_1http__url-members.html +++ b/classstdex_1_1parser_1_1http__url-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url.html b/classstdex_1_1parser_1_1http__url.html index 3611383e2..4c0a8dd93 100644 --- a/classstdex_1_1parser_1_1http__url.html +++ b/classstdex_1_1parser_1_1http__url.html @@ -235,7 +235,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url__parameter-members.html b/classstdex_1_1parser_1_1http__url__parameter-members.html index 4eac10500..51e66c9a8 100644 --- a/classstdex_1_1parser_1_1http__url__parameter-members.html +++ b/classstdex_1_1parser_1_1http__url__parameter-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url__parameter.html b/classstdex_1_1parser_1_1http__url__parameter.html index 4f06133d7..2615d0fb5 100644 --- a/classstdex_1_1parser_1_1http__url__parameter.html +++ b/classstdex_1_1parser_1_1http__url__parameter.html @@ -226,7 +226,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url__path-members.html b/classstdex_1_1parser_1_1http__url__path-members.html index 1039e107d..f0c99f4ba 100644 --- a/classstdex_1_1parser_1_1http__url__path-members.html +++ b/classstdex_1_1parser_1_1http__url__path-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url__path.html b/classstdex_1_1parser_1_1http__url__path.html index fb089513e..85f628f83 100644 --- a/classstdex_1_1parser_1_1http__url__path.html +++ b/classstdex_1_1parser_1_1http__url__path.html @@ -224,7 +224,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url__path__segment-members.html b/classstdex_1_1parser_1_1http__url__path__segment-members.html index 613e16166..2ef620ca5 100644 --- a/classstdex_1_1parser_1_1http__url__path__segment-members.html +++ b/classstdex_1_1parser_1_1http__url__path__segment-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url__path__segment.html b/classstdex_1_1parser_1_1http__url__path__segment.html index 20b764385..22e490348 100644 --- a/classstdex_1_1parser_1_1http__url__path__segment.html +++ b/classstdex_1_1parser_1_1http__url__path__segment.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url__port-members.html b/classstdex_1_1parser_1_1http__url__port-members.html index 06d4da914..779637ad2 100644 --- a/classstdex_1_1parser_1_1http__url__port-members.html +++ b/classstdex_1_1parser_1_1http__url__port-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url__port.html b/classstdex_1_1parser_1_1http__url__port.html index 622902c96..a9e81c57f 100644 --- a/classstdex_1_1parser_1_1http__url__port.html +++ b/classstdex_1_1parser_1_1http__url__port.html @@ -226,7 +226,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__url__server-members.html b/classstdex_1_1parser_1_1http__url__server-members.html index 34edf5fa9..047fa4fe8 100644 --- a/classstdex_1_1parser_1_1http__url__server-members.html +++ b/classstdex_1_1parser_1_1http__url__server-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__url__server.html b/classstdex_1_1parser_1_1http__url__server.html index bb19ef3d2..ec884ed91 100644 --- a/classstdex_1_1parser_1_1http__url__server.html +++ b/classstdex_1_1parser_1_1http__url__server.html @@ -187,7 +187,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__value-members.html b/classstdex_1_1parser_1_1http__value-members.html index 3c39716d3..2a3920114 100644 --- a/classstdex_1_1parser_1_1http__value-members.html +++ b/classstdex_1_1parser_1_1http__value-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__value.html b/classstdex_1_1parser_1_1http__value.html index 87499f162..ed9a2b781 100644 --- a/classstdex_1_1parser_1_1http__value.html +++ b/classstdex_1_1parser_1_1http__value.html @@ -228,7 +228,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__value__collection-members.html b/classstdex_1_1parser_1_1http__value__collection-members.html index 36a4f3a5e..90bfbbd8c 100644 --- a/classstdex_1_1parser_1_1http__value__collection-members.html +++ b/classstdex_1_1parser_1_1http__value__collection-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__value__collection.html b/classstdex_1_1parser_1_1http__value__collection.html index 86deba3f3..a2b8e5c03 100644 --- a/classstdex_1_1parser_1_1http__value__collection.html +++ b/classstdex_1_1parser_1_1http__value__collection.html @@ -107,7 +107,7 @@ class stdex::parser::http_value_collection< T >

Collection of HTTP

diff --git a/classstdex_1_1parser_1_1http__weight-members.html b/classstdex_1_1parser_1_1http__weight-members.html index 89a74a2aa..97676c6aa 100644 --- a/classstdex_1_1parser_1_1http__weight-members.html +++ b/classstdex_1_1parser_1_1http__weight-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__weight.html b/classstdex_1_1parser_1_1http__weight.html index 8eb518b79..e76f1d303 100644 --- a/classstdex_1_1parser_1_1http__weight.html +++ b/classstdex_1_1parser_1_1http__weight.html @@ -227,7 +227,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1http__weighted__value-members.html b/classstdex_1_1parser_1_1http__weighted__value-members.html index fc025f204..098268d61 100644 --- a/classstdex_1_1parser_1_1http__weighted__value-members.html +++ b/classstdex_1_1parser_1_1http__weighted__value-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1http__weighted__value.html b/classstdex_1_1parser_1_1http__weighted__value.html index 6e37c2534..e63cb6473 100644 --- a/classstdex_1_1parser_1_1http__weighted__value.html +++ b/classstdex_1_1parser_1_1http__weighted__value.html @@ -237,7 +237,7 @@ template<class T , class T_asterisk = http_asterisk> diff --git a/classstdex_1_1parser_1_1parser__collection-members.html b/classstdex_1_1parser_1_1parser__collection-members.html index 2a1f9551e..23a81781a 100644 --- a/classstdex_1_1parser_1_1parser__collection-members.html +++ b/classstdex_1_1parser_1_1parser__collection-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1parser__collection.html b/classstdex_1_1parser_1_1parser__collection.html index 7f0b6c80a..470b740f8 100644 --- a/classstdex_1_1parser_1_1parser__collection.html +++ b/classstdex_1_1parser_1_1parser__collection.html @@ -192,7 +192,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1sgml__any__cp-members.html b/classstdex_1_1parser_1_1sgml__any__cp-members.html index 664643103..6a9f9b444 100644 --- a/classstdex_1_1parser_1_1sgml__any__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__any__cp-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__any__cp.html b/classstdex_1_1parser_1_1sgml__any__cp.html index 74e3997c0..deeccc5c4 100644 --- a/classstdex_1_1parser_1_1sgml__any__cp.html +++ b/classstdex_1_1parser_1_1sgml__any__cp.html @@ -199,7 +199,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__cp-members.html b/classstdex_1_1parser_1_1sgml__cp-members.html index f630c62fe..183d5b236 100644 --- a/classstdex_1_1parser_1_1sgml__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__cp-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__cp.html b/classstdex_1_1parser_1_1sgml__cp.html index 42e4dec57..5afe5fd18 100644 --- a/classstdex_1_1parser_1_1sgml__cp.html +++ b/classstdex_1_1parser_1_1sgml__cp.html @@ -200,7 +200,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1sgml__cp__set-members.html b/classstdex_1_1parser_1_1sgml__cp__set-members.html index fc31429b8..909c35800 100644 --- a/classstdex_1_1parser_1_1sgml__cp__set-members.html +++ b/classstdex_1_1parser_1_1sgml__cp__set-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__cp__set.html b/classstdex_1_1parser_1_1sgml__cp__set.html index 9c4004117..cdc220814 100644 --- a/classstdex_1_1parser_1_1sgml__cp__set.html +++ b/classstdex_1_1parser_1_1sgml__cp__set.html @@ -216,7 +216,7 @@ size_t hit_offset diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html index ced17724e..0c4e0ad5a 100644 --- a/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html @@ -94,7 +94,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char.html b/classstdex_1_1parser_1_1sgml__dns__domain__char.html index 748dee033..109a1aec3 100644 --- a/classstdex_1_1parser_1_1sgml__dns__domain__char.html +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char.html @@ -208,7 +208,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html index 8d4bfc71d..dad49e5ab 100644 --- a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html index 769c08159..530faf674 100644 --- a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html @@ -190,7 +190,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__punct__cp-members.html b/classstdex_1_1parser_1_1sgml__punct__cp-members.html index 5359c14f2..368249fb8 100644 --- a/classstdex_1_1parser_1_1sgml__punct__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__punct__cp-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__punct__cp.html b/classstdex_1_1parser_1_1sgml__punct__cp.html index 7bc354a12..1ee9c8baa 100644 --- a/classstdex_1_1parser_1_1sgml__punct__cp.html +++ b/classstdex_1_1parser_1_1sgml__punct__cp.html @@ -203,7 +203,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__space__cp-members.html b/classstdex_1_1parser_1_1sgml__space__cp-members.html index 83dab5940..2e0cbc7bc 100644 --- a/classstdex_1_1parser_1_1sgml__space__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__space__cp-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__space__cp.html b/classstdex_1_1parser_1_1sgml__space__cp.html index d716efa02..315edec80 100644 --- a/classstdex_1_1parser_1_1sgml__space__cp.html +++ b/classstdex_1_1parser_1_1sgml__space__cp.html @@ -203,7 +203,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html b/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html index f98df6eb5..8bd7b5663 100644 --- a/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html index f6c77d00a..dc8503747 100644 --- a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html @@ -203,7 +203,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__string-members.html b/classstdex_1_1parser_1_1sgml__string-members.html index 1fb491f11..18a318e4d 100644 --- a/classstdex_1_1parser_1_1sgml__string-members.html +++ b/classstdex_1_1parser_1_1sgml__string-members.html @@ -87,7 +87,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__string.html b/classstdex_1_1parser_1_1sgml__string.html index 8541141d9..93c724b67 100644 --- a/classstdex_1_1parser_1_1sgml__string.html +++ b/classstdex_1_1parser_1_1sgml__string.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1sgml__url__password__char-members.html b/classstdex_1_1parser_1_1sgml__url__password__char-members.html index 161d297df..b059227a9 100644 --- a/classstdex_1_1parser_1_1sgml__url__password__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__password__char-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__url__password__char.html b/classstdex_1_1parser_1_1sgml__url__password__char.html index 251b275bf..3361023cd 100644 --- a/classstdex_1_1parser_1_1sgml__url__password__char.html +++ b/classstdex_1_1parser_1_1sgml__url__password__char.html @@ -199,7 +199,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__url__path__char-members.html b/classstdex_1_1parser_1_1sgml__url__path__char-members.html index 3f2eaab42..daa40e761 100644 --- a/classstdex_1_1parser_1_1sgml__url__path__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__path__char-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__url__path__char.html b/classstdex_1_1parser_1_1sgml__url__path__char.html index d8c21dded..50efd718b 100644 --- a/classstdex_1_1parser_1_1sgml__url__path__char.html +++ b/classstdex_1_1parser_1_1sgml__url__path__char.html @@ -199,7 +199,7 @@ std::locale m_locale diff --git a/classstdex_1_1parser_1_1sgml__url__username__char-members.html b/classstdex_1_1parser_1_1sgml__url__username__char-members.html index 496029857..fe065cd7f 100644 --- a/classstdex_1_1parser_1_1sgml__url__username__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__username__char-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/classstdex_1_1parser_1_1sgml__url__username__char.html b/classstdex_1_1parser_1_1sgml__url__username__char.html index 78754b868..3be72d4e9 100644 --- a/classstdex_1_1parser_1_1sgml__url__username__char.html +++ b/classstdex_1_1parser_1_1sgml__url__username__char.html @@ -199,7 +199,7 @@ std::locale m_locale diff --git a/classstdex_1_1progress-members.html b/classstdex_1_1progress-members.html index 0d2311b05..6041b784f 100644 --- a/classstdex_1_1progress-members.html +++ b/classstdex_1_1progress-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1progress.html b/classstdex_1_1progress.html index a8b74abd2..7ed21cb1a 100644 --- a/classstdex_1_1progress.html +++ b/classstdex_1_1progress.html @@ -319,7 +319,7 @@ template<class T > diff --git a/classstdex_1_1progress__switcher-members.html b/classstdex_1_1progress__switcher-members.html index 8750cbb64..e9aea270b 100644 --- a/classstdex_1_1progress__switcher-members.html +++ b/classstdex_1_1progress__switcher-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classstdex_1_1progress__switcher.html b/classstdex_1_1progress__switcher.html index 183cc6232..ba5cd75f1 100644 --- a/classstdex_1_1progress__switcher.html +++ b/classstdex_1_1progress__switcher.html @@ -178,7 +178,7 @@ class stdex::progress_switcher< T >

Progress indicator switcher. <

diff --git a/classstdex_1_1user__cancelled-members.html b/classstdex_1_1user__cancelled-members.html index 302f063e8..13744006a 100644 --- a/classstdex_1_1user__cancelled-members.html +++ b/classstdex_1_1user__cancelled-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/classstdex_1_1user__cancelled.html b/classstdex_1_1user__cancelled.html index 1ac215540..451e4af7d 100644 --- a/classstdex_1_1user__cancelled.html +++ b/classstdex_1_1user__cancelled.html @@ -141,7 +141,7 @@ Public Member Functions diff --git a/classstdex_1_1vector__queue-members.html b/classstdex_1_1vector__queue-members.html index 27960436e..e77ddca67 100644 --- a/classstdex_1_1vector__queue-members.html +++ b/classstdex_1_1vector__queue-members.html @@ -122,7 +122,7 @@ $(function() { diff --git a/classstdex_1_1vector__queue.html b/classstdex_1_1vector__queue.html index 19212c751..9f19fce7c 100644 --- a/classstdex_1_1vector__queue.html +++ b/classstdex_1_1vector__queue.html @@ -795,7 +795,7 @@ template<class T > diff --git a/dir_4be4f7b278e009bf0f1906cf31fb73bd.html b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html index 20d5bb5a5..58773d67e 100644 --- a/dir_4be4f7b278e009bf0f1906cf31fb73bd.html +++ b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html @@ -86,7 +86,7 @@ Files diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html index 02e7d7f59..cd5ea3bb8 100644 --- a/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -86,7 +86,7 @@ Directories diff --git a/dir_fca3c47b2ea228727bd6729832f89576.html b/dir_fca3c47b2ea228727bd6729832f89576.html index cf43a8b5d..e9c5b8a95 100644 --- a/dir_fca3c47b2ea228727bd6729832f89576.html +++ b/dir_fca3c47b2ea228727bd6729832f89576.html @@ -124,7 +124,7 @@ Files diff --git a/endian_8hpp_source.html b/endian_8hpp_source.html index f7506f1c2..ff890c6c3 100644 --- a/endian_8hpp_source.html +++ b/endian_8hpp_source.html @@ -184,7 +184,7 @@ $(function() { diff --git a/errno_8hpp_source.html b/errno_8hpp_source.html index 2f71675c7..bf3ce7e0f 100644 --- a/errno_8hpp_source.html +++ b/errno_8hpp_source.html @@ -136,7 +136,7 @@ $(function() { diff --git a/exception_8hpp_source.html b/exception_8hpp_source.html index 26a292ab9..594c490a6 100644 --- a/exception_8hpp_source.html +++ b/exception_8hpp_source.html @@ -102,7 +102,7 @@ $(function() { diff --git a/files.html b/files.html index 24a511b06..ebff6cb3e 100644 --- a/files.html +++ b/files.html @@ -104,7 +104,7 @@ $(function() { diff --git a/functions.html b/functions.html index 5dcd79f6f..bd5dd67eb 100644 --- a/functions.html +++ b/functions.html @@ -263,7 +263,7 @@ $(function() { diff --git a/functions_func.html b/functions_func.html index e65f684d1..0fd1e635d 100644 --- a/functions_func.html +++ b/functions_func.html @@ -212,7 +212,7 @@ $(function() { diff --git a/functions_type.html b/functions_type.html index 2197ab8be..10f2d464a 100644 --- a/functions_type.html +++ b/functions_type.html @@ -81,7 +81,7 @@ $(function() { diff --git a/functions_vars.html b/functions_vars.html index d04601968..bdc1d6091 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -176,7 +176,7 @@ $(function() { diff --git a/hex_8hpp_source.html b/hex_8hpp_source.html index c4df2bffe..8e0b6b3a5 100644 --- a/hex_8hpp_source.html +++ b/hex_8hpp_source.html @@ -209,7 +209,7 @@ $(function() { diff --git a/hierarchy.html b/hierarchy.html index f433440c3..0f9a68cd9 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -80,139 +80,142 @@ $(function() {  Cstdex::base64_encBase64 encoding session  Cstd::basic_fstream  Cstdex::basic_fstream< _Elem, _Traits >File stream with additional std::filesystem features - Cstd::basic_istream - Cstdex::basic_isharedstrstream< _Elem, _Traits > - Cstdex::basic_istreamfmt< _Elem, _Traits >Binary stream reader - Cstdex::basic_iostreamfmt< _Elem, _Traits >Binary stream reader/writer - Cstdex::basic_ostreamfmt< _Elem, _Traits >Binary stream writer + Cstd::basic_iostream + Cstdex::basic_diagstream< _Elem, _Traits >Diagnostic input/output stream + Cstd::basic_istream + Cstdex::basic_isharedstrstream< _Elem, _Traits > + Cstdex::basic_istreamfmt< _Elem, _Traits >Binary stream reader  Cstdex::basic_iostreamfmt< _Elem, _Traits >Binary stream reader/writer - Cstdex::parser::basic_parser< T >Base template for all parsers - Cstdex::parser::basic_any_cu< char > - Cstdex::parser::sgml_any_cpTest for any SGML code point - Cstdex::parser::basic_dns_domain_char< char > - Cstdex::parser::sgml_dns_domain_charTest for valid DNS domain SGML character - Cstdex::parser::basic_punct_cu< char > - Cstdex::parser::sgml_punct_cpTest for any SGML punctuation code point - Cstdex::parser::basic_set< char > - Cstdex::parser::sgml_cp_setTest for any SGML code point from a given string of SGML code points - Cstdex::parser::basic_space_cu< char > - Cstdex::parser::sgml_space_cpTest for any SGML space code point - Cstdex::parser::basic_space_or_punct_cu< char > - Cstdex::parser::sgml_space_or_punct_cpTest for any SGML space or punctuation code point - Cstdex::parser::basic_url_password_char< char > - Cstdex::parser::sgml_url_password_charTest for valid URL password SGML character - Cstdex::parser::basic_url_path_char< char > - Cstdex::parser::sgml_url_path_charTest for valid URL path SGML character - Cstdex::parser::basic_url_username_char< char > - Cstdex::parser::sgml_url_username_charTest for valid URL username SGML character - Cstdex::parser::basic_angle< T >Test for angle in d°mm'ss.dddd form - Cstdex::parser::basic_any_cu< T >Test for any code unit - Cstdex::parser::basic_bol< T >Test for beginning of line - Cstdex::parser::basic_chemical_formula< T >Test for chemical formula - Cstdex::parser::basic_cu< T >Test for specific code unit - Cstdex::parser::basic_date< T >Test for date - Cstdex::parser::basic_dns_domain_char< T >Test for valid DNS domain character - Cstdex::parser::basic_dns_name< T >Test for DNS domain/hostname - Cstdex::parser::basic_email_address< T >Test for e-mail address - Cstdex::parser::basic_emoticon< T >Test for emoticon - Cstdex::parser::basic_eol< T >Test for end of line - Cstdex::parser::basic_fraction< T >Test for fraction - Cstdex::parser::basic_integer< T >Base class for integer testing - Cstdex::parser::basic_integer10< T >Test for decimal integer - Cstdex::parser::basic_integer10ts< T >Test for decimal integer possibly containing thousand separators - Cstdex::parser::basic_integer16< T >Test for hexadecimal integer - Cstdex::parser::basic_roman_numeral< T >Test for Roman numeral - Cstdex::parser::basic_ipv4_address< T >Test for IPv4 address - Cstdex::parser::basic_ipv6_address< T >Test for IPv6 address - Cstdex::parser::basic_ipv6_scope_id_char< T >Test for valid IPv6 address scope ID character - Cstdex::parser::basic_iterations< T >Test for repeating - Cstdex::parser::basic_json_string< T >Test for JSON string - Cstdex::parser::basic_mixed_numeral< T >Test for mixed numeral - Cstdex::parser::basic_monetary_numeral< T >Test for monetary numeral - Cstdex::parser::basic_noop< T >"No-op" match - Cstdex::parser::basic_phone_number< T >Test for phone number - Cstdex::parser::basic_punct_cu< T >Test for any punctuation code unit - Cstdex::parser::basic_scientific_numeral< T >Test for scientific numeral - Cstdex::parser::basic_score< T >Test for match score - Cstdex::parser::basic_set< T > - Cstdex::parser::basic_cu_set< T >Test for any code unit from a given string of code units - Cstdex::parser::basic_signed_numeral< T >Test for signed numeral - Cstdex::parser::basic_space_cu< T >Test for any space code unit - Cstdex::parser::basic_space_or_punct_cu< T >Test for any space or punctuation code unit - Cstdex::parser::basic_string< T >Test for given string - Cstdex::parser::basic_time< T >Test for time - Cstdex::parser::basic_url< T >Test for URL - Cstdex::parser::basic_url_password_char< T >Test for valid URL password character - Cstdex::parser::basic_url_path< T >Test for URL path - Cstdex::parser::basic_url_path_char< T >Test for valid URL path character - Cstdex::parser::basic_url_username_char< T >Test for valid URL username character - Cstdex::parser::parser_collection< T >Base template for collection-holding parsers - Cstdex::parser::basic_branch< T >Test for any - Cstdex::parser::basic_string_branch< T, T_parser >Test for any string - Cstdex::parser::basic_permutation< T >Test for permutation - Cstdex::parser::basic_sequence< T >Test for sequence - Cstdex::parser::basic_parser< char > - Cstdex::parser::http_agentTest for HTTP agent - Cstdex::parser::http_any_typeTest for HTTP any type - Cstdex::parser::http_asteriskTest for HTTP asterisk - Cstdex::parser::http_cookieTest for HTTP cookie (RFC2109) - Cstdex::parser::http_cookie_parameterTest for HTTP cookie parameter (RFC2109) - Cstdex::parser::http_headerTest for HTTP header - Cstdex::parser::http_languageTest for HTTP language (RFC1766) - Cstdex::parser::http_line_breakTest for HTTP line break (RFC2616: CRLF | LF) - Cstdex::parser::http_media_rangeTest for HTTP media range (RFC2616: media-range) - Cstdex::parser::http_media_typeTest for HTTP media type (RFC2616: media-type) - Cstdex::parser::http_parameterTest for HTTP parameter (RFC2616: parameter) - Cstdex::parser::http_protocolTest for HTTP protocol - Cstdex::parser::http_quoted_stringTest for HTTP quoted string (RFC2616: quoted-string) - Cstdex::parser::http_requestTest for HTTP request - Cstdex::parser::http_spaceTest for HTTP space (RFC2616: LWS) - Cstdex::parser::http_text_charTest for HTTP text character (RFC2616: TEXT) - Cstdex::parser::http_tokenTest for HTTP token (RFC2616: token - tolerates non-ASCII) - Cstdex::parser::http_urlTest for HTTP URL - Cstdex::parser::http_url_parameterTest for HTTP URL parameter - Cstdex::parser::http_url_pathTest for HTTP URL path segment - Cstdex::parser::http_url_path_segmentTest for HTTP URL path segment - Cstdex::parser::http_url_portTest for HTTP URL port - Cstdex::parser::http_url_serverTest for HTTP URL server - Cstdex::parser::http_valueTest for HTTP value (RFC2616: value) - Cstdex::parser::http_weightTest for HTTP weight factor - Cstdex::parser::http_weighted_value< T, T_asterisk >Test for HTTP weighted value - Cstdex::parser::sgml_cpTest for specific SGML code point - Cstdex::parser::sgml_ipv6_scope_id_charTest for valid IPv6 address scope ID SGML character - Cstdex::parser::sgml_stringTest for SGML given string - Cstd::basic_streambuf - Cstdex::basic_sharedstrbuf< _Elem, _Traits >Shared-memory string buffer - Cstd::basic_stringstream - Cstdex::basic_stringstream< _Elem, _Traits, _Alloc >String stream - Cstd::exception - Cstdex::user_cancelledUser cancelled exception - Cstdex::getter< _Type, _Class >Helper template to allow access to internal std C++ private members - Cstdex::hex_decHexadecimal decoding session - Cstdex::hex_encHexadecimal encoding session - Cstdex::parser::http_factor_more< T > - Cstdex::interval< T >Numerical interval - Cstdex::interval< size_t > - Cstdex::mapping< T >Maps index in source string to index in destination string - Cstdex::no_delete< T >Noop deleter - Cstdex::no_delete< T[]>Noop array deleter - Cstdex::progress< T >Progress indicator base class - Cstdex::global_progress< T >Global progress indicator base class - Cstdex::progress_switcher< T >Progress indicator switcher - Cstdex::lazy_progress< T >Lazy progress indicator base class - Cstdex::idrec::record< T, T_ID, ID, T_SIZE, ALIGN >Helper class for read/write of records to/from memory - Cstdex::robber< _Tag, _Member >Helper template to allow access to internal std C++ private members - Cstd::runtime_error - Cstdex::errno_errorStandard C runtime library error - CT - Cstdex::parser::http_value_collection< T >Collection of HTTP values - Cstdex::vector_queue< T >Helper class to allow limited size FIFO queues implemented as vector of elements + Cstdex::basic_ostreamfmt< _Elem, _Traits >Binary stream writer + Cstdex::basic_iostreamfmt< _Elem, _Traits >Binary stream reader/writer + Cstdex::parser::basic_parser< T >Base template for all parsers + Cstdex::parser::basic_any_cu< char > + Cstdex::parser::sgml_any_cpTest for any SGML code point + Cstdex::parser::basic_dns_domain_char< char > + Cstdex::parser::sgml_dns_domain_charTest for valid DNS domain SGML character + Cstdex::parser::basic_punct_cu< char > + Cstdex::parser::sgml_punct_cpTest for any SGML punctuation code point + Cstdex::parser::basic_set< char > + Cstdex::parser::sgml_cp_setTest for any SGML code point from a given string of SGML code points + Cstdex::parser::basic_space_cu< char > + Cstdex::parser::sgml_space_cpTest for any SGML space code point + Cstdex::parser::basic_space_or_punct_cu< char > + Cstdex::parser::sgml_space_or_punct_cpTest for any SGML space or punctuation code point + Cstdex::parser::basic_url_password_char< char > + Cstdex::parser::sgml_url_password_charTest for valid URL password SGML character + Cstdex::parser::basic_url_path_char< char > + Cstdex::parser::sgml_url_path_charTest for valid URL path SGML character + Cstdex::parser::basic_url_username_char< char > + Cstdex::parser::sgml_url_username_charTest for valid URL username SGML character + Cstdex::parser::basic_angle< T >Test for angle in d°mm'ss.dddd form + Cstdex::parser::basic_any_cu< T >Test for any code unit + Cstdex::parser::basic_bol< T >Test for beginning of line + Cstdex::parser::basic_chemical_formula< T >Test for chemical formula + Cstdex::parser::basic_cu< T >Test for specific code unit + Cstdex::parser::basic_date< T >Test for date + Cstdex::parser::basic_dns_domain_char< T >Test for valid DNS domain character + Cstdex::parser::basic_dns_name< T >Test for DNS domain/hostname + Cstdex::parser::basic_email_address< T >Test for e-mail address + Cstdex::parser::basic_emoticon< T >Test for emoticon + Cstdex::parser::basic_eol< T >Test for end of line + Cstdex::parser::basic_fraction< T >Test for fraction + Cstdex::parser::basic_integer< T >Base class for integer testing + Cstdex::parser::basic_integer10< T >Test for decimal integer + Cstdex::parser::basic_integer10ts< T >Test for decimal integer possibly containing thousand separators + Cstdex::parser::basic_integer16< T >Test for hexadecimal integer + Cstdex::parser::basic_roman_numeral< T >Test for Roman numeral + Cstdex::parser::basic_ipv4_address< T >Test for IPv4 address + Cstdex::parser::basic_ipv6_address< T >Test for IPv6 address + Cstdex::parser::basic_ipv6_scope_id_char< T >Test for valid IPv6 address scope ID character + Cstdex::parser::basic_iterations< T >Test for repeating + Cstdex::parser::basic_json_string< T >Test for JSON string + Cstdex::parser::basic_mixed_numeral< T >Test for mixed numeral + Cstdex::parser::basic_monetary_numeral< T >Test for monetary numeral + Cstdex::parser::basic_noop< T >"No-op" match + Cstdex::parser::basic_phone_number< T >Test for phone number + Cstdex::parser::basic_punct_cu< T >Test for any punctuation code unit + Cstdex::parser::basic_scientific_numeral< T >Test for scientific numeral + Cstdex::parser::basic_score< T >Test for match score + Cstdex::parser::basic_set< T > + Cstdex::parser::basic_cu_set< T >Test for any code unit from a given string of code units + Cstdex::parser::basic_signed_numeral< T >Test for signed numeral + Cstdex::parser::basic_space_cu< T >Test for any space code unit + Cstdex::parser::basic_space_or_punct_cu< T >Test for any space or punctuation code unit + Cstdex::parser::basic_string< T >Test for given string + Cstdex::parser::basic_time< T >Test for time + Cstdex::parser::basic_url< T >Test for URL + Cstdex::parser::basic_url_password_char< T >Test for valid URL password character + Cstdex::parser::basic_url_path< T >Test for URL path + Cstdex::parser::basic_url_path_char< T >Test for valid URL path character + Cstdex::parser::basic_url_username_char< T >Test for valid URL username character + Cstdex::parser::parser_collection< T >Base template for collection-holding parsers + Cstdex::parser::basic_branch< T >Test for any + Cstdex::parser::basic_string_branch< T, T_parser >Test for any string + Cstdex::parser::basic_permutation< T >Test for permutation + Cstdex::parser::basic_sequence< T >Test for sequence + Cstdex::parser::basic_parser< char > + Cstdex::parser::http_agentTest for HTTP agent + Cstdex::parser::http_any_typeTest for HTTP any type + Cstdex::parser::http_asteriskTest for HTTP asterisk + Cstdex::parser::http_cookieTest for HTTP cookie (RFC2109) + Cstdex::parser::http_cookie_parameterTest for HTTP cookie parameter (RFC2109) + Cstdex::parser::http_headerTest for HTTP header + Cstdex::parser::http_languageTest for HTTP language (RFC1766) + Cstdex::parser::http_line_breakTest for HTTP line break (RFC2616: CRLF | LF) + Cstdex::parser::http_media_rangeTest for HTTP media range (RFC2616: media-range) + Cstdex::parser::http_media_typeTest for HTTP media type (RFC2616: media-type) + Cstdex::parser::http_parameterTest for HTTP parameter (RFC2616: parameter) + Cstdex::parser::http_protocolTest for HTTP protocol + Cstdex::parser::http_quoted_stringTest for HTTP quoted string (RFC2616: quoted-string) + Cstdex::parser::http_requestTest for HTTP request + Cstdex::parser::http_spaceTest for HTTP space (RFC2616: LWS) + Cstdex::parser::http_text_charTest for HTTP text character (RFC2616: TEXT) + Cstdex::parser::http_tokenTest for HTTP token (RFC2616: token - tolerates non-ASCII) + Cstdex::parser::http_urlTest for HTTP URL + Cstdex::parser::http_url_parameterTest for HTTP URL parameter + Cstdex::parser::http_url_pathTest for HTTP URL path segment + Cstdex::parser::http_url_path_segmentTest for HTTP URL path segment + Cstdex::parser::http_url_portTest for HTTP URL port + Cstdex::parser::http_url_serverTest for HTTP URL server + Cstdex::parser::http_valueTest for HTTP value (RFC2616: value) + Cstdex::parser::http_weightTest for HTTP weight factor + Cstdex::parser::http_weighted_value< T, T_asterisk >Test for HTTP weighted value + Cstdex::parser::sgml_cpTest for specific SGML code point + Cstdex::parser::sgml_ipv6_scope_id_charTest for valid IPv6 address scope ID SGML character + Cstdex::parser::sgml_stringTest for SGML given string + Cstd::basic_streambuf + Cstdex::basic_diagstreambuf< _Elem, _Traits >Diagnostic input stream buffer + Cstdex::basic_sharedstrbuf< _Elem, _Traits >Shared-memory string stream buffer + Cstd::basic_stringstream + Cstdex::basic_stringstream< _Elem, _Traits, _Alloc >String stream + Cstd::exception + Cstdex::user_cancelledUser cancelled exception + Cstdex::getter< _Type, _Class >Helper template to allow access to internal std C++ private members + Cstdex::hex_decHexadecimal decoding session + Cstdex::hex_encHexadecimal encoding session + Cstdex::parser::http_factor_more< T > + Cstdex::interval< T >Numerical interval + Cstdex::interval< size_t > + Cstdex::mapping< T >Maps index in source string to index in destination string + Cstdex::no_delete< T >Noop deleter + Cstdex::no_delete< T[]>Noop array deleter + Cstdex::progress< T >Progress indicator base class + Cstdex::global_progress< T >Global progress indicator base class + Cstdex::progress_switcher< T >Progress indicator switcher + Cstdex::lazy_progress< T >Lazy progress indicator base class + Cstdex::idrec::record< T, T_ID, ID, T_SIZE, ALIGN >Helper class for read/write of records to/from memory + Cstdex::robber< _Tag, _Member >Helper template to allow access to internal std C++ private members + Cstd::runtime_error + Cstdex::errno_errorStandard C runtime library error + CT + Cstdex::parser::http_value_collection< T >Collection of HTTP values + Cstdex::vector_queue< T >Helper class to allow limited size FIFO queues implemented as vector of elements diff --git a/idrec_8hpp_source.html b/idrec_8hpp_source.html index 3eb20d286..5fd07f92f 100644 --- a/idrec_8hpp_source.html +++ b/idrec_8hpp_source.html @@ -275,7 +275,7 @@ $(function() { diff --git a/index.html b/index.html index 027d55e04..2b4132407 100644 --- a/index.html +++ b/index.html @@ -76,7 +76,7 @@ $(function() { diff --git a/internal_8hpp_source.html b/internal_8hpp_source.html index 77536c662..bda3eb226 100644 --- a/internal_8hpp_source.html +++ b/internal_8hpp_source.html @@ -112,7 +112,7 @@ $(function() { diff --git a/interval_8hpp_source.html b/interval_8hpp_source.html index 0b424d7cd..58fac39fd 100644 --- a/interval_8hpp_source.html +++ b/interval_8hpp_source.html @@ -128,7 +128,7 @@ $(function() { diff --git a/ios_8hpp_source.html b/ios_8hpp_source.html index 878dbaad0..94e2dee7c 100644 --- a/ios_8hpp_source.html +++ b/ios_8hpp_source.html @@ -94,490 +94,611 @@ $(function() {
15#include <assert.h>
16#include <stdint.h>
17#include <stdio.h>
-
18#include <chrono>
-
19#include <fstream>
-
20#include <istream>
-
21#include <ostream>
-
22
-
23namespace stdex
-
24{
-
28 template <class _Elem, class _Traits>
- -
30 {
-
31 public:
-
32 std::basic_ostream<_Elem, _Traits> &sp; // Write stream
-
33
-
34 inline basic_ostreamfmt(_Inout_ std::basic_ostream<_Elem, _Traits> &stream) : sp(stream) {}
-
35
-
36 using pos_type = typename _Traits::pos_type;
-
37 using off_type = typename _Traits::off_type;
-
38 inline pos_type tellp() { return sp.tellp(); }
-
39 inline basic_ostreamfmt<_Elem, _Traits>& seekp(pos_type pos) { sp.seekp(pos); return *this; }
-
40 inline basic_ostreamfmt<_Elem, _Traits>& seekp(off_type off, std::ios_base::seekdir dir) { sp.seekp(off, dir); return *this; }
-
41 inline bool good() const noexcept { return sp.good(); }
-
42 inline bool eof() const noexcept { return sp.eof(); }
-
43 inline bool fail() const noexcept { return sp.fail(); }
-
44 inline bool bad() const noexcept { return sp.bad(); }
-
45
-
46 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_reads_bytes_(size) const void* data, _In_ std::streamsize size)
-
47 {
-
48 sp.write(reinterpret_cast<const _Elem*>(data), size/sizeof(_Elem));
-
49 return *this;
-
50 }
-
51
-
52 template <class T>
-
53 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_ T value)
-
54 {
-
55 HE2LE(&value);
-
56 sp.write(reinterpret_cast<const _Elem*>(&value), sizeof(T)/sizeof(_Elem));
-
57 return *this;
-
58 }
-
59
-
60 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_z_ const char* value)
-
61 {
-
62 size_t count = strlen(value);
-
63 if (count > UINT32_MAX)
-
64 throw std::invalid_argument("string too big");
-
65 sp.write(static_cast<uint32_t>(count));
-
66 sp.write(reinterpret_cast<const _Elem*>(value), (std::streamsize)count * sizeof(char)/sizeof(_Elem));
-
67 return *this;
-
68 }
-
69
-
70 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_z_ const wchar_t* value)
-
71 {
-
72 size_t count = strlen(value);
-
73 if (count > UINT32_MAX)
-
74 throw std::invalid_argument("string too big");
-
75 sp.write(static_cast<uint32_t>(count));
-
76#ifdef BIG_ENDIAN
-
77 for (size_t i = 0; i < count; ++i)
-
78 sp.write(value[i]);
-
79#else
-
80 sp.write(reinterpret_cast<const _Elem*>(value), (std::streamsize)count * sizeof(wchar_t)/sizeof(_Elem));
-
81#endif
-
82 return *this;
-
83 }
-
84
-
85 inline basic_ostreamfmt<_Elem, _Traits>& write_byte(_In_ uint8_t value)
-
86 {
-
87 return write(value);
-
88 }
-
89
-
97 template <class _Elem2>
-
98 void vprintf(_In_z_ _Printf_format_string_ const _Elem2 *format, _In_opt_ locale_t locale, _In_ va_list arg)
-
99 {
-
100 std::basic_string<_Elem2> str;
-
101 vappendf(str, format, locale, arg);
-
102 sp.write(reinterpret_cast<const _Elem*>(str.c_str()), str.size() * sizeof(_Elem2)/sizeof(_Elem));
-
103 }
-
104
-
111 template <class _Elem2>
-
112 void printf(_In_z_ _Printf_format_string_ const _Elem2 *format, _In_opt_ locale_t locale, ...)
-
113 {
-
114 va_list arg;
-
115 va_start(arg, locale);
-
116 vprintf(format, locale, arg);
-
117 va_end(arg);
-
118 }
-
119
-
120 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int8_t value) { return write(value); }
-
121 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int16_t value) { return write(value); }
-
122 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int32_t value) { return write(value); }
-
123 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int64_t value) { return write(value); }
-
124 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint8_t value) { return write(value); }
-
125 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint16_t value) { return write(value); }
-
126 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint32_t value) { return write(value); }
-
127 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint64_t value) { return write(value); }
-
128#if defined(_NATIVE_SIZE_T_DEFINED) && defined(_WIN64)
-
129 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ size_t value) { return write(value); }
-
130#endif
-
131 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ float value) { return write(value); }
-
132 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ double value) { return write(value); }
-
133 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ char value) { return write(value); }
-
134#ifdef _NATIVE_WCHAR_T_DEFINED
-
135 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ wchar_t value) { return write(value); }
-
136#endif
-
137 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_z_ const char* value) { return write(value); }
-
138 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_z_ const wchar_t* value) { return write(value); }
-
139 };
-
140
-
141 using ostreamfmt = basic_ostreamfmt<char, std::char_traits<char>>;
-
142 using wostreamfmt = basic_ostreamfmt<wchar_t, std::char_traits<wchar_t>>;
+
18#include <algorithm>
+
19#include <chrono>
+
20#include <fstream>
+
21#include <iterator>
+
22#include <istream>
+
23#include <ostream>
+
24#include <vector>
+
25
+
26namespace stdex
+
27{
+
31 template <class _Elem, class _Traits>
+ +
33 {
+
34 public:
+
35 std::basic_ostream<_Elem, _Traits> &sp; // Write stream
+
36
+
37 inline basic_ostreamfmt(_Inout_ std::basic_ostream<_Elem, _Traits> &stream) : sp(stream) {}
+
38
+
39 using pos_type = typename _Traits::pos_type;
+
40 using off_type = typename _Traits::off_type;
+
41 inline pos_type tellp() { return sp.tellp(); }
+
42 inline basic_ostreamfmt<_Elem, _Traits>& seekp(pos_type pos) { sp.seekp(pos); return *this; }
+
43 inline basic_ostreamfmt<_Elem, _Traits>& seekp(off_type off, std::ios_base::seekdir dir) { sp.seekp(off, dir); return *this; }
+
44 inline bool good() const noexcept { return sp.good(); }
+
45 inline bool eof() const noexcept { return sp.eof(); }
+
46 inline bool fail() const noexcept { return sp.fail(); }
+
47 inline bool bad() const noexcept { return sp.bad(); }
+
48
+
49 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_reads_bytes_(size) const void* data, _In_ std::streamsize size)
+
50 {
+
51 sp.write(reinterpret_cast<const _Elem*>(data), size/sizeof(_Elem));
+
52 return *this;
+
53 }
+
54
+
55 template <class T>
+
56 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_ T value)
+
57 {
+
58 HE2LE(&value);
+
59 sp.write(reinterpret_cast<const _Elem*>(&value), sizeof(T)/sizeof(_Elem));
+
60 return *this;
+
61 }
+
62
+
63 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_z_ const char* value)
+
64 {
+
65 size_t count = strlen(value);
+
66 if (count > UINT32_MAX)
+
67 throw std::invalid_argument("string too big");
+
68 sp.write(static_cast<uint32_t>(count));
+
69 sp.write(reinterpret_cast<const _Elem*>(value), (std::streamsize)count * sizeof(char)/sizeof(_Elem));
+
70 return *this;
+
71 }
+
72
+
73 inline basic_ostreamfmt<_Elem, _Traits>& write(_In_z_ const wchar_t* value)
+
74 {
+
75 size_t count = strlen(value);
+
76 if (count > UINT32_MAX)
+
77 throw std::invalid_argument("string too big");
+
78 sp.write(static_cast<uint32_t>(count));
+
79#ifdef BIG_ENDIAN
+
80 for (size_t i = 0; i < count; ++i)
+
81 sp.write(value[i]);
+
82#else
+
83 sp.write(reinterpret_cast<const _Elem*>(value), (std::streamsize)count * sizeof(wchar_t)/sizeof(_Elem));
+
84#endif
+
85 return *this;
+
86 }
+
87
+
88 inline basic_ostreamfmt<_Elem, _Traits>& write_byte(_In_ uint8_t value)
+
89 {
+
90 return write(value);
+
91 }
+
92
+
100 template <class _Elem2>
+
101 void vprintf(_In_z_ _Printf_format_string_ const _Elem2 *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
102 {
+
103 std::basic_string<_Elem2> str;
+
104 vappendf(str, format, locale, arg);
+
105 sp.write(reinterpret_cast<const _Elem*>(str.c_str()), str.size() * sizeof(_Elem2)/sizeof(_Elem));
+
106 }
+
107
+
114 template <class _Elem2>
+
115 void printf(_In_z_ _Printf_format_string_ const _Elem2 *format, _In_opt_ locale_t locale, ...)
+
116 {
+
117 va_list arg;
+
118 va_start(arg, locale);
+
119 vprintf(format, locale, arg);
+
120 va_end(arg);
+
121 }
+
122
+
123 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int8_t value) { return write(value); }
+
124 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int16_t value) { return write(value); }
+
125 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int32_t value) { return write(value); }
+
126 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ int64_t value) { return write(value); }
+
127 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint8_t value) { return write(value); }
+
128 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint16_t value) { return write(value); }
+
129 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint32_t value) { return write(value); }
+
130 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ uint64_t value) { return write(value); }
+
131#if defined(_NATIVE_SIZE_T_DEFINED) && defined(_WIN64)
+
132 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ size_t value) { return write(value); }
+
133#endif
+
134 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ float value) { return write(value); }
+
135 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ double value) { return write(value); }
+
136 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ char value) { return write(value); }
+
137#ifdef _NATIVE_WCHAR_T_DEFINED
+
138 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_ wchar_t value) { return write(value); }
+
139#endif
+
140 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_z_ const char* value) { return write(value); }
+
141 inline basic_ostreamfmt<_Elem, _Traits>& operator <<(_In_z_ const wchar_t* value) { return write(value); }
+
142 };
143
-
147 template <class _Elem, class _Traits>
- -
149 {
-
150 public:
-
151 std::basic_istream<_Elem, _Traits> &sg; // Read stream
-
152
-
153 inline basic_istreamfmt(_Inout_ std::basic_istream<_Elem, _Traits> &stream) : sg(stream) {}
-
154
-
155 using pos_type = typename _Traits::pos_type;
-
156 using off_type = typename _Traits::off_type;
-
157 inline pos_type tellg() { return sg.tellg(); }
-
158 inline basic_istreamfmt<_Elem, _Traits>& seekg(pos_type pos) { sg.seekg(pos); return *this; }
-
159 inline basic_istreamfmt<_Elem, _Traits>& seekg(off_type off, std::ios_base::seekdir dir) { sg.seekg(off, dir); return *this; }
-
160 inline bool good() const noexcept { return sg.good(); }
-
161 inline bool eof() const noexcept { return sg.eof(); }
-
162 inline bool fail() const noexcept { return sg.fail(); }
-
163 inline bool bad() const noexcept { return sg.bad(); }
-
164 inline std::streamsize gcount() const noexcept { return sg.gcount(); }
-
165
-
166 inline basic_istreamfmt<_Elem, _Traits>& read(_Out_writes_bytes_(size) void* data, std::streamsize size)
-
167 {
-
168 sg.read(reinterpret_cast<_Elem*>(data), size/sizeof(_Elem));
-
169 return *this;
-
170 }
-
171
-
172 template <class T>
-
173 inline basic_istreamfmt<_Elem, _Traits>& read(_Out_ T& value)
-
174 {
-
175 sg.read(reinterpret_cast<_Elem*>(&value), sizeof(T)/sizeof(_Elem));
-
176 if (sg.good())
-
177 LE2HE(&value);
-
178 return *this;
-
179 }
-
180
-
181 template <class _Traits = std::char_traits<char>, class _Alloc = std::allocator<char>>
-
182 inline basic_istreamfmt<_Elem, _Traits>& read(_Inout_ std::basic_string<char, _Traits, _Alloc>& value)
-
183 {
-
184 uint32_t count;
-
185 sg.read(count);
-
186 if (sg.good()) {
-
187 value.resize(count);
-
188 sg.read(reinterpret_cast<_Elem*>(&value[0]), (std::streamsize)count * sizeof(char)/sizeof(_Elem));
-
189 }
-
190 return *this;
-
191 }
-
192
-
193 template <class _Traits = std::char_traits<wchar_t>, class _Alloc = std::allocator<wchar_t>>
-
194 inline basic_istreamfmt<_Elem, _Traits>& read(_Inout_ std::basic_string<wchar_t, _Traits, _Alloc>& value)
-
195 {
-
196 uint32_t count;
-
197 sg.read(count);
-
198 if (sg.good()) {
-
199 value.resize(count);
-
200#ifdef BIG_ENDIAN
-
201 for (size_t i = 0; i < count; ++i)
-
202 sg.read(value[i]);
-
203#else
-
204 sg.read(reinterpret_cast<_Elem*>(&value[0]), (std::streamsize)count * sizeof(wchar_t)/sizeof(_Elem));
-
205#endif
-
206 }
-
207 return *this;
-
208 }
-
209
-
210 inline uint8_t read_byte()
-
211 {
-
212 uint8_t value;
-
213 read(value);
-
214 return value;
-
215 }
-
216
-
217 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int8_t& value) { return read(value); }
-
218 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int16_t& value) { return read(value); }
-
219 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int32_t& value) { return read(value); }
-
220 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int64_t& value) { return read(value); }
-
221 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint8_t& value) { return read(value); }
-
222 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint16_t& value) { return read(value); }
-
223 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint32_t& value) { return read(value); }
-
224 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint64_t& value) { return read(value); }
-
225#if defined(_NATIVE_SIZE_T_DEFINED) && defined(_WIN64)
-
226 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ size_t& value) { return read(value); }
-
227#endif
-
228 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ float& value) { return read(value); }
-
229 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ double& value) { return read(value); }
-
230 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ char& value) { return read(value); }
-
231#ifdef _NATIVE_WCHAR_T_DEFINED
-
232 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ wchar_t& value) { return read(value); }
-
233#endif
-
234 template <class _Traits = std::char_traits<char>, class _Alloc = std::allocator<char>>
-
235 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Inout_ std::basic_string<char, _Traits, _Alloc>& value) { return read(value); }
-
236 template <class _Traits = std::char_traits<wchar_t>, class _Alloc = std::allocator<wchar_t>>
-
237 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Inout_ std::basic_string<wchar_t, _Traits, _Alloc>& value) { return read(value); }
-
238 };
-
239
- - +
144 using ostreamfmt = basic_ostreamfmt<char, std::char_traits<char>>;
+
145 using wostreamfmt = basic_ostreamfmt<wchar_t, std::char_traits<wchar_t>>;
+
146
+
150 template <class _Elem, class _Traits>
+ +
152 {
+
153 public:
+
154 std::basic_istream<_Elem, _Traits> &sg; // Read stream
+
155
+
156 inline basic_istreamfmt(_Inout_ std::basic_istream<_Elem, _Traits> &stream) : sg(stream) {}
+
157
+
158 using pos_type = typename _Traits::pos_type;
+
159 using off_type = typename _Traits::off_type;
+
160 inline pos_type tellg() { return sg.tellg(); }
+
161 inline basic_istreamfmt<_Elem, _Traits>& seekg(pos_type pos) { sg.seekg(pos); return *this; }
+
162 inline basic_istreamfmt<_Elem, _Traits>& seekg(off_type off, std::ios_base::seekdir dir) { sg.seekg(off, dir); return *this; }
+
163 inline bool good() const noexcept { return sg.good(); }
+
164 inline bool eof() const noexcept { return sg.eof(); }
+
165 inline bool fail() const noexcept { return sg.fail(); }
+
166 inline bool bad() const noexcept { return sg.bad(); }
+
167 inline std::streamsize gcount() const noexcept { return sg.gcount(); }
+
168
+
169 inline basic_istreamfmt<_Elem, _Traits>& read(_Out_writes_bytes_(size) void* data, std::streamsize size)
+
170 {
+
171 sg.read(reinterpret_cast<_Elem*>(data), size/sizeof(_Elem));
+
172 return *this;
+
173 }
+
174
+
175 template <class T>
+
176 inline basic_istreamfmt<_Elem, _Traits>& read(_Out_ T& value)
+
177 {
+
178 sg.read(reinterpret_cast<_Elem*>(&value), sizeof(T)/sizeof(_Elem));
+
179 if (sg.good())
+
180 LE2HE(&value);
+
181 return *this;
+
182 }
+
183
+
184 template <class _Traits = std::char_traits<char>, class _Alloc = std::allocator<char>>
+
185 inline basic_istreamfmt<_Elem, _Traits>& read(_Inout_ std::basic_string<char, _Traits, _Alloc>& value)
+
186 {
+
187 uint32_t count;
+
188 sg.read(count);
+
189 if (sg.good()) {
+
190 value.resize(count);
+
191 sg.read(reinterpret_cast<_Elem*>(&value[0]), (std::streamsize)count * sizeof(char)/sizeof(_Elem));
+
192 }
+
193 return *this;
+
194 }
+
195
+
196 template <class _Traits = std::char_traits<wchar_t>, class _Alloc = std::allocator<wchar_t>>
+
197 inline basic_istreamfmt<_Elem, _Traits>& read(_Inout_ std::basic_string<wchar_t, _Traits, _Alloc>& value)
+
198 {
+
199 uint32_t count;
+
200 sg.read(count);
+
201 if (sg.good()) {
+
202 value.resize(count);
+
203#ifdef BIG_ENDIAN
+
204 for (size_t i = 0; i < count; ++i)
+
205 sg.read(value[i]);
+
206#else
+
207 sg.read(reinterpret_cast<_Elem*>(&value[0]), (std::streamsize)count * sizeof(wchar_t)/sizeof(_Elem));
+
208#endif
+
209 }
+
210 return *this;
+
211 }
+
212
+
213 inline uint8_t read_byte()
+
214 {
+
215 uint8_t value;
+
216 read(value);
+
217 return value;
+
218 }
+
219
+
220 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int8_t& value) { return read(value); }
+
221 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int16_t& value) { return read(value); }
+
222 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int32_t& value) { return read(value); }
+
223 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ int64_t& value) { return read(value); }
+
224 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint8_t& value) { return read(value); }
+
225 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint16_t& value) { return read(value); }
+
226 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint32_t& value) { return read(value); }
+
227 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ uint64_t& value) { return read(value); }
+
228#if defined(_NATIVE_SIZE_T_DEFINED) && defined(_WIN64)
+
229 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ size_t& value) { return read(value); }
+
230#endif
+
231 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ float& value) { return read(value); }
+
232 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ double& value) { return read(value); }
+
233 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ char& value) { return read(value); }
+
234#ifdef _NATIVE_WCHAR_T_DEFINED
+
235 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Out_ wchar_t& value) { return read(value); }
+
236#endif
+
237 template <class _Traits = std::char_traits<char>, class _Alloc = std::allocator<char>>
+
238 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Inout_ std::basic_string<char, _Traits, _Alloc>& value) { return read(value); }
+
239 template <class _Traits = std::char_traits<wchar_t>, class _Alloc = std::allocator<wchar_t>>
+
240 inline basic_istreamfmt<_Elem, _Traits>& operator >>(_Inout_ std::basic_string<wchar_t, _Traits, _Alloc>& value) { return read(value); }
+
241 };
242
-
246 template <class _Elem, class _Traits>
-
247 class basic_iostreamfmt : public basic_ostreamfmt<_Elem, _Traits>, public basic_istreamfmt<_Elem, _Traits>
-
248 {
-
249 public:
-
250 inline basic_iostreamfmt(_Inout_ std::basic_iostream<_Elem, _Traits> &stream) :
- - -
253 {}
-
254 };
-
255
- - + + +
245
+
249 template <class _Elem, class _Traits>
+
250 class basic_iostreamfmt : public basic_ostreamfmt<_Elem, _Traits>, public basic_istreamfmt<_Elem, _Traits>
+
251 {
+
252 public:
+
253 inline basic_iostreamfmt(_Inout_ std::basic_iostream<_Elem, _Traits> &stream) :
+ + +
256 {}
+
257 };
258
-
262 template <class _Elem, class _Traits>
-
263 class basic_sharedstrbuf : public std::basic_streambuf<_Elem, _Traits>
-
264 {
-
265 public:
-
266 basic_sharedstrbuf(_In_reads_(size) const _Elem* data, _In_ size_t size)
-
267 {
-
268 std::basic_streambuf<_Elem, _Traits>::setg(const_cast<_Elem*>(data), const_cast<_Elem*>(data), const_cast<_Elem*>(data + size));
-
269 }
-
270
- -
272 {
-
273 std::basic_streambuf<_Elem, _Traits>::setg(other.eback(), other.gptr(), other.egptr());
-
274 }
-
275
- -
277 {
-
278 if (this != std::addressof(other))
-
279 std::basic_streambuf<_Elem, _Traits>::operator =(other);
-
280 return *this;
-
281 }
-
282
-
283 private:
- - -
286
-
287 protected:
-
288 virtual pos_type seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
-
289 {
-
290 if (which & std::ios_base::in) {
-
291 _Elem* target;
-
292 switch (way) {
-
293 case std::ios_base::beg: target = eback() + static_cast<ptrdiff_t>(off); break;
-
294 case std::ios_base::cur: target = gptr() + static_cast<ptrdiff_t>(off); break;
-
295 case std::ios_base::end: target = egptr() + static_cast<ptrdiff_t>(off); break;
-
296 default: throw std::invalid_argument("invalid seek reference");
-
297 }
-
298 if (eback() <= target && target <= egptr()) {
-
299 gbump(static_cast<int>(target - gptr()));
-
300 return pos_type{ off_type{ target - eback() } };
-
301 }
-
302 }
-
303 return pos_type{ off_type{-1} };
-
304 }
-
305
-
306 virtual pos_type __CLR_OR_THIS_CALL seekpos(pos_type pos, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
-
307 {
-
308 // change to specified position, according to mode
-
309 if (which & std::ios_base::in) {
-
310 _Elem* target = eback() + static_cast<size_t>(pos);
-
311 if (eback() <= target && target <= egptr()) {
-
312 gbump(static_cast<int>(target - gptr()));
-
313 return pos_type{ off_type{ target - eback() } };
-
314 }
-
315 }
-
316 return pos_type{ off_type{-1} };
-
317 }
-
318 };
-
319
-
320 template <class _Elem, class _Traits>
-
321 class basic_isharedstrstream : public std::basic_istream<_Elem, _Traits>
-
322 {
-
323 public:
-
324 basic_isharedstrstream(_In_reads_(size) const _Elem* data, _In_ size_t size) :
-
325 m_buf(data, size),
-
326 std::basic_istream<_Elem, _Traits>(&m_buf)
-
327 {}
-
328
-
329 protected:
- -
331 };
-
332
- - -
335
-
336#ifdef _WIN32
-
338 template struct robber<getter<FILE*, std::filebuf>, &std::filebuf::_Myfile>;
-
339 template struct robber<getter<FILE*, std::wfilebuf>, &std::wfilebuf::_Myfile>;
-
340
-
341 inline FILE* filebuf_fhandle(_In_ std::filebuf* rb)
-
342 {
-
343 return (*rb).*get(getter<FILE*, std::filebuf>());
-
344 }
-
345
-
346 inline FILE* filebuf_fhandle(_In_ std::wfilebuf* rb)
-
347 {
-
348 return (*rb).*get(getter<FILE*, std::wfilebuf>());
-
349 }
-
351#endif
-
352
-
356 template <class _Elem, class _Traits>
-
357 class basic_fstream : public std::basic_fstream<_Elem, _Traits>
-
358 {
-
359 public:
-
360 using _Mybase = std::basic_fstream<_Elem, _Traits>;
-
361#if _HAS_CXX20
-
362 using time_point = std::chrono::time_point<std::chrono::file_clock>;
-
363#else
-
364 using time_point = std::chrono::time_point<std::chrono::system_clock>;
-
365#endif
-
366
-
367 basic_fstream() {}
-
368
-
369 explicit basic_fstream(
-
370 _In_z_ const char* file_name,
-
371 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
-
372 _In_ int prot = ios_base::_Default_open_prot) : _Mybase(file_name, mode, prot) {}
-
373
-
374 explicit basic_fstream(
-
375 _In_z_ const wchar_t* file_name,
-
376 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
-
377 _In_ int prot = ios_base::_Default_open_prot) : _Mybase(file_name, mode, prot) {}
-
378
-
379 template<class _Elem2, class _Traits2, class _Ax>
-
380 explicit basic_fstream(
-
381 _In_ const std::basic_string<_Elem2, _Traits2, _Ax>& str,
-
382 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
-
383 _In_ int prot = ios_base::_Default_open_prot) : basic_fstream(str.c_str(), mode, prot) {}
-
384
-
385 explicit basic_fstream(_In_ FILE* file) : _Mybase(file) {}
+ + +
261
+
265 template <class _Elem, class _Traits>
+
266 class basic_sharedstrbuf : public std::basic_streambuf<_Elem, _Traits>
+
267 {
+
268 public:
+
269 basic_sharedstrbuf(_In_reads_(size) const _Elem* data, _In_ size_t size)
+
270 {
+
271 setg(const_cast<_Elem*>(data), const_cast<_Elem*>(data), const_cast<_Elem*>(data + size));
+
272 }
+
273
+ +
275 {
+
276 setg(other.eback(), other.gptr(), other.egptr());
+
277 }
+
278
+ +
280 {
+
281 if (this != std::addressof(other))
+
282 std::basic_streambuf<_Elem, _Traits>::operator =(other);
+
283 return *this;
+
284 }
+
285
+
286 private:
+ + +
289
+
290 protected:
+
291 virtual pos_type seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
+
292 {
+
293 if (which & std::ios_base::in) {
+
294 _Elem* target;
+
295 switch (way) {
+
296 case std::ios_base::beg: target = eback() + static_cast<ptrdiff_t>(off); break;
+
297 case std::ios_base::cur: target = gptr() + static_cast<ptrdiff_t>(off); break;
+
298 case std::ios_base::end: target = egptr() + static_cast<ptrdiff_t>(off); break;
+
299 default: throw std::invalid_argument("invalid seek reference");
+
300 }
+
301 if (eback() <= target && target <= egptr()) {
+
302 gbump(static_cast<int>(target - gptr()));
+
303 return pos_type{ off_type{ target - eback() } };
+
304 }
+
305 }
+
306 return pos_type{ off_type{-1} };
+
307 }
+
308
+
309 virtual pos_type seekpos(pos_type pos, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
+
310 {
+
311 if (which & std::ios_base::in) {
+
312 _Elem* target = eback() + static_cast<size_t>(pos);
+
313 if (eback() <= target && target <= egptr()) {
+
314 gbump(static_cast<int>(target - gptr()));
+
315 return pos_type{ off_type{ target - eback() } };
+
316 }
+
317 }
+
318 return pos_type{ off_type{-1} };
+
319 }
+
320 };
+
321
+
322 template <class _Elem, class _Traits>
+
323 class basic_isharedstrstream : public std::basic_istream<_Elem, _Traits>
+
324 {
+
325 public:
+
326 basic_isharedstrstream(_In_reads_(size) const _Elem* data, _In_ size_t size) :
+
327 m_buf(data, size),
+
328 std::basic_istream<_Elem, _Traits>(&m_buf)
+
329 {}
+
330
+
331 protected:
+ +
333 };
+
334
+ + +
337
+
343 template <class _Elem, class _Traits>
+
344 class basic_diagstreambuf : public std::basic_streambuf<_Elem, _Traits>
+
345 {
+
346 public:
+
347 using guest_stream = std::basic_iostream<_Elem, _Traits>;
+
348
+
349 basic_diagstreambuf(_In_reads_(count) guest_stream* const* streams, _In_ size_t count) : m_streams(stream, count) {}
+
350
+
351 template<typename _Iter>
+
352 basic_diagstreambuf(_In_ const _Iter first, _In_ const _Iter last) : m_streams(first, last) {}
+
353
+
354 private:
+ + + + +
359
+
360 protected:
+
361 virtual pos_type seekoff(off_type off, std::ios_base::seekdir way, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
+
362 {
+
363 if (m_streams.empty())
+
364 return pos_type{ off_type{-1} };
+
365 auto r = pos_type{ off_type{-1} };
+
366 if ((which & std::ios_base::in)) {
+
367 m_streams[0]->seekg(off, way);
+
368 r = m_streams[0]->bad() ? pos_type{ off_type{-1} } : m_streams[0]->tellg();
+
369 for (size_t i = 1, n = m_streams.size(); i < n; ++i) {
+
370 m_streams[i]->seekg(off, way);
+
371 if (m_streams[i]->bad())
+
372 r = pos_type{ off_type{-1} };
+
373 }
+
374 }
+
375 if ((which & std::ios_base::out)) {
+
376 m_streams[0]->seekp(off, way);
+
377 r = m_streams[0]->bad() ? pos_type{ off_type{-1} } : m_streams[0]->tellp();
+
378 for (size_t i = 1, n = m_streams.size(); i < n; ++i) {
+
379 m_streams[i]->seekp(off, way);
+
380 if (m_streams[i]->bad())
+
381 r = pos_type{ off_type{-1} };
+
382 }
+
383 }
+
384 return r;
+
385 }
386
-
387 basic_fstream(_Inout_ basic_fstream&& other) : _Mybase(std::move(other)) {}
-
388
-
392 void truncate()
+
387 virtual pos_type seekpos(pos_type pos, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out)
+
388 {
+
389 return seekoff(pos, std::ios_base::beg, which);
+
390 }
+
391
+
392 virtual int_type underflow()
393 {
-
394 flush();
-
395 auto h = os_fhandle();
-
396#ifdef _WIN32
-
397 if (h == INVALID_HANDLE_VALUE)
-
398 throw std::runtime_error("invalid handle");
-
399 auto pos = tellp();
-
400 LONG
-
401 pos_lo = static_cast<LONG>(pos & 0xffffffff),
-
402 pos_hi = static_cast<LONG>((pos >> 32) & 0xffffffff);
-
403 if (SetFilePointer(h, pos_lo, &pos_hi, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
-
404 throw std::runtime_error("failed to seek");
-
405 if (!SetEndOfFile(h))
-
406 throw std::runtime_error("failed to truncate");
-
407#else
-
408#error Implement!
-
409#endif
-
410 }
-
411
-
417 time_point mtime() const
-
418 {
-
419 auto h = os_fhandle();
-
420#ifdef _WIN32
-
421 if (h == INVALID_HANDLE_VALUE)
-
422 throw std::runtime_error("invalid handle");
-
423 FILETIME ft;
-
424 if (!GetFileTime(h, NULL, NULL, &ft))
-
425 throw std::runtime_error("failed to get mtime");
-
426#if _HAS_CXX20
-
427 return time_point(time_point::duration(((static_cast<int64_t>(ft.dwHighDateTime) << 32) | ft.dwLowDateTime)));
-
428#else
-
429 // Adjust epoch to std::chrono::time_point<std::chrono::system_clock>/time_t.
-
430 return time_point(time_point::duration(((static_cast<int64_t>(ft.dwHighDateTime) << 32) | ft.dwLowDateTime) - 116444736000000000ll));
-
431#endif
-
432#else
-
433#error Implement!
-
434#endif
-
435 }
-
436
-
437 protected:
-
438#ifdef _WIN32
-
439 HANDLE os_fhandle() const
-
440 {
-
441 FILE* f = filebuf_fhandle(rdbuf());
-
442 if (f == NULL)
-
443 return INVALID_HANDLE_VALUE;
-
444
-
445 int fd = _fileno(f);
-
446 if (fd == -1)
-
447 return INVALID_HANDLE_VALUE;
-
448
-
449 return (HANDLE)_get_osfhandle(fd);
-
450 }
-
451#else
-
452#error Implement!
-
453#endif
-
454 };
-
455
-
456 using fstream = basic_fstream<char, std::char_traits<char>>;
-
457 using wfstream = basic_fstream<wchar_t, std::char_traits<wchar_t>>;
+
394 int_type eof = _Traits::eof();
+
395 if (m_streams.empty())
+
396 eof;
+
397 _Elem data;
+
398 m_streams[0]->read(&data, 1);
+
399 int_type r = m_streams[0]->gcount() == 1 ? _Traits::to_int_type(data) : eof;
+
400 for (size_t i = 1, n = m_streams.size(); i < n; ++i) {
+
401 m_streams[i]->read(&data, 1);
+
402 int_type temp_r = m_streams[i]->gcount() == 1 ? _Traits::to_int_type(data) : eof;
+
403 if (r != temp_r)
+
404 r = eof;
+
405 }
+
406 return r;
+
407 }
+
408
+
409 virtual int_type overflow(int_type ch = _Traits::eof())
+
410 {
+
411 if (_Traits::not_eof(ch)) {
+
412 _Elem data = _Traits::to_char_type(ch);
+
413 bool good = true;
+
414 for (size_t i = 0, n = m_streams.size(); i < n; ++i) {
+
415 m_streams[i]->write(&data, 1);
+
416 good &= m_streams[i]->good();
+
417 }
+
418 return good ? 0 : _Traits::eof();
+
419 }
+
420 return 0;
+
421 }
+
422
+
423 virtual int sync()
+
424 {
+
425 int r = 0;
+
426 for (size_t i = 0, n = m_streams.size(); i < n; ++i)
+
427 if (m_streams[i]->sync() < 0)
+
428 r = -1;
+
429 return r;
+
430 }
+
431
+
432 protected:
+
433 std::vector<guest_stream*> m_streams;
+
434 };
+
435
+
442 template <class _Elem, class _Traits>
+
443 class basic_diagstream : public std::basic_iostream<_Elem, _Traits>
+
444 {
+
445 public:
+
446 using guest_stream = std::basic_iostream<_Elem, _Traits>;
+
447
+
448 basic_diagstream(_In_reads_(count) guest_stream* const* streams, _In_ size_t count) :
+
449 m_buf(streams, count),
+
450 std::basic_iostream<_Elem, _Traits>(&m_buf)
+
451 {}
+
452
+
453 template<typename _Iter>
+
454 basic_diagstream(_In_ const _Iter first, _In_ const _Iter last) :
+
455 m_buf(first, last),
+
456 std::basic_iostream<_Elem, _Traits>(&m_buf)
+
457 {}
458
-
462 template <class _Elem, class _Traits, class _Alloc>
-
463 class basic_stringstream : public std::basic_stringstream<_Elem, _Traits, _Alloc> {
-
464 public:
-
465 using _Mybase = std::basic_stringstream<_Elem, _Traits, _Alloc>;
-
466 using _Mystr = std::basic_string<_Elem, _Traits, _Alloc>;
-
467
- -
469 explicit basic_stringstream(_In_ std::ios_base::openmode mode) : _Mybase(mode) {}
-
470 explicit basic_stringstream(_In_ const _Mystr& str, _In_ std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out) : _Mybase(str, mode) {}
-
471 basic_stringstream(_Inout_ basic_stringstream&& other) : _Mybase(std::move(other)) {}
-
472
-
480 template <class T>
-
481 explicit basic_stringstream(_In_z_ const T* filename, _In_ std::ios_base::openmode mode = std::ios_base::in, _In_ int prot = std::ios_base::_Default_open_prot) :
-
482 _Mybase(std::ios_base::in | std::ios_base::out | (mode & std::ios_base::binary | std::ios_base::app))
-
483 {
-
484 std::basic_ifstream<_Elem, _Traits> input(filename, mode & ~(std::ios_base::ate | std::ios_base::app), prot);
-
485 input.seekg(0, input.end);
-
486 auto size = input.tellg();
-
487 if (size > SIZE_MAX)
-
488 throw std::runtime_error("file too big to fit into memory");
-
489 str().reserve(static_cast<size_t>(size));
-
490 input.seekg(0);
-
491 do {
-
492 _Elem buf[0x1000];
-
493 input.read(buf, _countof(buf));
-
494 write(buf, input.gcount());
-
495 } while (!input.eof());
-
496 if (!(mode & (std::ios_base::ate | std::ios_base::app)))
-
497 seekp(0);
-
498 }
-
499
-
507 template <class _Elem2, class _Traits2 = std::char_traits<_Elem2>, class _Alloc2 = std::allocator<_Elem2>>
-
508 explicit basic_stringstream(_In_ const std::basic_string<_Elem2, _Traits2, _Alloc2>& filename, _In_ std::ios_base::openmode mode = std::ios_base::in, _In_ int prot = std::ios_base::_Default_open_prot) :
-
509 basic_stringstream(filename.c_str(), mode, prot)
-
510 {}
-
511
-
519 template <class T>
-
520 void save(_In_z_ const T* filename, _In_ std::ios_base::openmode mode = std::ios_base::out, _In_ int prot = std::ios_base::_Default_open_prot)
-
521 {
-
522 std::basic_ofstream<_Elem, _Traits> output(filename, mode, prot);
-
523 auto origin = tellg();
-
524 seekg(0, end);
-
525 auto size = tellg();
-
526 do {
-
527 _Elem buf[0x1000];
-
528 read(buf, _countof(buf));
-
529 output.write(buf, gcount());
-
530 } while (!eof());
-
531 seekg(origin);
-
532 }
-
533
-
534 template <class _Elem2, class _Traits2 = std::char_traits<T>, class _Alloc2 = std::allocator<T>>
-
535 void save(_In_ const std::basic_string<_Elem2, _Traits2, _Alloc2>& filename, _In_ std::ios_base::openmode mode = std::ios_base::out, _In_ int prot = std::ios_base::_Default_open_prot)
-
536 {
-
537 save(filename.data(), mode, prot);
-
538 }
-
539 };
-
540
-
541 using stringstream = basic_stringstream<char, std::char_traits<char>, std::allocator<char>>;
-
542 using wstringstream = basic_stringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<char>>;
-
543}
-
File stream with additional std::filesystem features.
Definition ios.hpp:358
-
time_point mtime() const
Returns file modification time.
Definition ios.hpp:417
-
void truncate()
Sets end of file at current put position.
Definition ios.hpp:392
-
Binary stream reader/writer.
Definition ios.hpp:248
-
Definition ios.hpp:322
-
Binary stream reader.
Definition ios.hpp:149
-
Binary stream writer.
Definition ios.hpp:30
-
void vprintf(const _Elem2 *format, locale_t locale, va_list arg)
Formats string using printf() and write it to stream.
Definition ios.hpp:98
-
void printf(const _Elem2 *format, locale_t locale,...)
Formats string using printf() and write it to stream.
Definition ios.hpp:112
-
Shared-memory string buffer.
Definition ios.hpp:264
-
String stream.
Definition ios.hpp:463
-
basic_stringstream(const T *filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)
Initializes stream with content from file.
Definition ios.hpp:481
-
void save(const T *filename, std::ios_base::openmode mode=std::ios_base::out, int prot=std::ios_base::_Default_open_prot)
Saves stream content to a file.
Definition ios.hpp:520
-
basic_stringstream(const std::basic_string< _Elem2, _Traits2, _Alloc2 > &filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)
Initializes stream with content from file.
Definition ios.hpp:508
+
459 protected:
+ +
461 };
+
462
+ + +
465
+
466#ifdef _WIN32
+
468 template struct robber<getter<FILE*, std::filebuf>, &std::filebuf::_Myfile>;
+
469 template struct robber<getter<FILE*, std::wfilebuf>, &std::wfilebuf::_Myfile>;
+
470
+
471 inline FILE* filebuf_fhandle(_In_ std::filebuf* rb)
+
472 {
+
473 return (*rb).*get(getter<FILE*, std::filebuf>());
+
474 }
+
475
+
476 inline FILE* filebuf_fhandle(_In_ std::wfilebuf* rb)
+
477 {
+
478 return (*rb).*get(getter<FILE*, std::wfilebuf>());
+
479 }
+
481#endif
+
482
+
486 template <class _Elem, class _Traits>
+
487 class basic_fstream : public std::basic_fstream<_Elem, _Traits>
+
488 {
+
489 public:
+
490 using _Mybase = std::basic_fstream<_Elem, _Traits>;
+
491#if _HAS_CXX20
+
492 using time_point = std::chrono::time_point<std::chrono::file_clock>;
+
493#else
+
494 using time_point = std::chrono::time_point<std::chrono::system_clock>;
+
495#endif
+
496
+
497 basic_fstream() {}
+
498
+
499 explicit basic_fstream(
+
500 _In_z_ const char* file_name,
+
501 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
+
502 _In_ int prot = ios_base::_Default_open_prot) : _Mybase(file_name, mode, prot) {}
+
503
+
504 explicit basic_fstream(
+
505 _In_z_ const wchar_t* file_name,
+
506 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
+
507 _In_ int prot = ios_base::_Default_open_prot) : _Mybase(file_name, mode, prot) {}
+
508
+
509 template<class _Elem2, class _Traits2, class _Ax>
+
510 explicit basic_fstream(
+
511 _In_ const std::basic_string<_Elem2, _Traits2, _Ax>& str,
+
512 _In_ ios_base::openmode mode = ios_base::in | ios_base::out,
+
513 _In_ int prot = ios_base::_Default_open_prot) : basic_fstream(str.c_str(), mode, prot) {}
+
514
+
515 explicit basic_fstream(_In_ FILE* file) : _Mybase(file) {}
+
516
+
517 basic_fstream(_Inout_ basic_fstream&& other) : _Mybase(std::move(other)) {}
+
518
+
522 void truncate()
+
523 {
+
524 flush();
+
525 auto h = os_fhandle();
+
526#ifdef _WIN32
+
527 if (h == INVALID_HANDLE_VALUE)
+
528 throw std::runtime_error("invalid handle");
+
529 auto pos = tellp();
+
530 LONG
+
531 pos_lo = static_cast<LONG>(pos & 0xffffffff),
+
532 pos_hi = static_cast<LONG>((pos >> 32) & 0xffffffff);
+
533 if (SetFilePointer(h, pos_lo, &pos_hi, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
+
534 throw std::runtime_error("failed to seek");
+
535 if (!SetEndOfFile(h))
+
536 throw std::runtime_error("failed to truncate");
+
537#else
+
538#error Implement!
+
539#endif
+
540 }
+
541
+
547 time_point mtime() const
+
548 {
+
549 auto h = os_fhandle();
+
550#ifdef _WIN32
+
551 if (h == INVALID_HANDLE_VALUE)
+
552 throw std::runtime_error("invalid handle");
+
553 FILETIME ft;
+
554 if (!GetFileTime(h, NULL, NULL, &ft))
+
555 throw std::runtime_error("failed to get mtime");
+
556#if _HAS_CXX20
+
557 return time_point(time_point::duration(((static_cast<int64_t>(ft.dwHighDateTime) << 32) | ft.dwLowDateTime)));
+
558#else
+
559 // Adjust epoch to std::chrono::time_point<std::chrono::system_clock>/time_t.
+
560 return time_point(time_point::duration(((static_cast<int64_t>(ft.dwHighDateTime) << 32) | ft.dwLowDateTime) - 116444736000000000ll));
+
561#endif
+
562#else
+
563#error Implement!
+
564#endif
+
565 }
+
566
+
567 protected:
+
568#ifdef _WIN32
+
569 HANDLE os_fhandle() const
+
570 {
+
571 FILE* f = filebuf_fhandle(rdbuf());
+
572 if (f == NULL)
+
573 return INVALID_HANDLE_VALUE;
+
574
+
575 int fd = _fileno(f);
+
576 if (fd == -1)
+
577 return INVALID_HANDLE_VALUE;
+
578
+
579 return (HANDLE)_get_osfhandle(fd);
+
580 }
+
581#else
+
582#error Implement!
+
583#endif
+
584 };
+
585
+
586 using fstream = basic_fstream<char, std::char_traits<char>>;
+
587 using wfstream = basic_fstream<wchar_t, std::char_traits<wchar_t>>;
+
588
+
592 template <class _Elem, class _Traits, class _Alloc>
+
593 class basic_stringstream : public std::basic_stringstream<_Elem, _Traits, _Alloc> {
+
594 public:
+
595 using _Mybase = std::basic_stringstream<_Elem, _Traits, _Alloc>;
+
596 using _Mystr = std::basic_string<_Elem, _Traits, _Alloc>;
+
597
+ +
599 explicit basic_stringstream(_In_ std::ios_base::openmode mode) : _Mybase(mode) {}
+
600 explicit basic_stringstream(_In_ const _Mystr& str, _In_ std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out) : _Mybase(str, mode) {}
+
601 basic_stringstream(_Inout_ basic_stringstream&& other) : _Mybase(std::move(other)) {}
+
602
+
610 template <class T>
+
611 explicit basic_stringstream(_In_z_ const T* filename, _In_ std::ios_base::openmode mode = std::ios_base::in, _In_ int prot = std::ios_base::_Default_open_prot) :
+
612 _Mybase(std::ios_base::in | std::ios_base::out | (mode & std::ios_base::binary | std::ios_base::app))
+
613 {
+
614 std::basic_ifstream<_Elem, _Traits> input(filename, mode & ~(std::ios_base::ate | std::ios_base::app), prot);
+
615 input.seekg(0, input.end);
+
616 auto size = input.tellg();
+
617 if (size > SIZE_MAX)
+
618 throw std::runtime_error("file too big to fit into memory");
+
619 str().reserve(static_cast<size_t>(size));
+
620 input.seekg(0);
+
621 do {
+
622 _Elem buf[0x1000];
+
623 input.read(buf, _countof(buf));
+
624 write(buf, input.gcount());
+
625 } while (!input.eof());
+
626 if (!(mode & (std::ios_base::ate | std::ios_base::app)))
+
627 seekp(0);
+
628 }
+
629
+
637 template <class _Elem2, class _Traits2 = std::char_traits<_Elem2>, class _Alloc2 = std::allocator<_Elem2>>
+
638 explicit basic_stringstream(_In_ const std::basic_string<_Elem2, _Traits2, _Alloc2>& filename, _In_ std::ios_base::openmode mode = std::ios_base::in, _In_ int prot = std::ios_base::_Default_open_prot) :
+
639 basic_stringstream(filename.c_str(), mode, prot)
+
640 {}
+
641
+
649 template <class T>
+
650 void save(_In_z_ const T* filename, _In_ std::ios_base::openmode mode = std::ios_base::out, _In_ int prot = std::ios_base::_Default_open_prot)
+
651 {
+
652 std::basic_ofstream<_Elem, _Traits> output(filename, mode, prot);
+
653 auto origin = tellg();
+
654 seekg(0, end);
+
655 auto size = tellg();
+
656 do {
+
657 _Elem buf[0x1000];
+
658 read(buf, _countof(buf));
+
659 output.write(buf, gcount());
+
660 } while (!eof());
+
661 seekg(origin);
+
662 }
+
663
+
664 template <class _Elem2, class _Traits2 = std::char_traits<T>, class _Alloc2 = std::allocator<T>>
+
665 void save(_In_ const std::basic_string<_Elem2, _Traits2, _Alloc2>& filename, _In_ std::ios_base::openmode mode = std::ios_base::out, _In_ int prot = std::ios_base::_Default_open_prot)
+
666 {
+
667 save(filename.data(), mode, prot);
+
668 }
+
669 };
+
670
+
671 using stringstream = basic_stringstream<char, std::char_traits<char>, std::allocator<char>>;
+
672 using wstringstream = basic_stringstream<wchar_t, std::char_traits<wchar_t>, std::allocator<char>>;
+
673}
+
Diagnostic input/output stream.
Definition ios.hpp:444
+
Diagnostic input stream buffer.
Definition ios.hpp:345
+
File stream with additional std::filesystem features.
Definition ios.hpp:488
+
time_point mtime() const
Returns file modification time.
Definition ios.hpp:547
+
void truncate()
Sets end of file at current put position.
Definition ios.hpp:522
+
Binary stream reader/writer.
Definition ios.hpp:251
+
Definition ios.hpp:324
+
Binary stream reader.
Definition ios.hpp:152
+
Binary stream writer.
Definition ios.hpp:33
+
void vprintf(const _Elem2 *format, locale_t locale, va_list arg)
Formats string using printf() and write it to stream.
Definition ios.hpp:101
+
void printf(const _Elem2 *format, locale_t locale,...)
Formats string using printf() and write it to stream.
Definition ios.hpp:115
+
Shared-memory string stream buffer.
Definition ios.hpp:267
+
String stream.
Definition ios.hpp:593
+
basic_stringstream(const T *filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)
Initializes stream with content from file.
Definition ios.hpp:611
+
void save(const T *filename, std::ios_base::openmode mode=std::ios_base::out, int prot=std::ios_base::_Default_open_prot)
Saves stream content to a file.
Definition ios.hpp:650
+
basic_stringstream(const std::basic_string< _Elem2, _Traits2, _Alloc2 > &filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)
Initializes stream with content from file.
Definition ios.hpp:638
Helper template to allow access to internal std C++ private members.
Definition internal.hpp:30
Helper template to allow access to internal std C++ private members.
Definition internal.hpp:18
diff --git a/mapping_8hpp_source.html b/mapping_8hpp_source.html index 17210102a..25b88a8ef 100644 --- a/mapping_8hpp_source.html +++ b/mapping_8hpp_source.html @@ -117,7 +117,7 @@ $(function() { diff --git a/memory_8hpp_source.html b/memory_8hpp_source.html index 82e423813..0b7d97f6c 100644 --- a/memory_8hpp_source.html +++ b/memory_8hpp_source.html @@ -119,7 +119,7 @@ $(function() { diff --git a/parser_8hpp_source.html b/parser_8hpp_source.html index 22d6325a8..9289d0714 100644 --- a/parser_8hpp_source.html +++ b/parser_8hpp_source.html @@ -6545,7 +6545,7 @@ $(function() { diff --git a/pch_8h_source.html b/pch_8h_source.html index a42404ca3..48bb5ce3f 100644 --- a/pch_8h_source.html +++ b/pch_8h_source.html @@ -103,10 +103,12 @@ $(function() {
24#include <stdex/vector_queue.hpp>
25
26#include <CppUnitTest.h>
+
27
+
28#include <cstdlib>
diff --git a/progress_8hpp_source.html b/progress_8hpp_source.html index 1078c236e..c5d781336 100644 --- a/progress_8hpp_source.html +++ b/progress_8hpp_source.html @@ -282,7 +282,7 @@ $(function() { diff --git a/sal_8hpp_source.html b/sal_8hpp_source.html index e03f9aa99..e53bd5161 100644 --- a/sal_8hpp_source.html +++ b/sal_8hpp_source.html @@ -118,32 +118,35 @@ $(function() {
39#ifndef _In_reads_or_z_opt_
40#define _In_reads_or_z_opt_(p)
41#endif
-
42
-
43#ifndef _Inout_
-
44#define _Inout_
-
45#endif
-
46
-
47#ifndef _Use_decl_annotations_
-
48#define _Use_decl_annotations_
-
49#endif
-
50
-
51#ifndef _Out_
-
52#define _Out_
-
53#endif
-
54#ifndef _Out_opt_
-
55#define _Out_opt_
+
42#ifndef _Printf_format_string_params_
+
43#define _Printf_format_string_params_(n)
+
44#endif
+
45
+
46#ifndef _Inout_
+
47#define _Inout_
+
48#endif
+
49
+
50#ifndef _Use_decl_annotations_
+
51#define _Use_decl_annotations_
+
52#endif
+
53
+
54#ifndef _Out_
+
55#define _Out_
56#endif
-
57#ifndef _Out_writes_z_
-
58#define _Out_writes_z_(p)
+
57#ifndef _Out_opt_
+
58#define _Out_opt_
59#endif
-
60
-
61#ifndef _Success_
-
62#define _Success_(p)
-
63#endif
+
60#ifndef _Out_writes_z_
+
61#define _Out_writes_z_(p)
+
62#endif
+
63
+
64#ifndef _Success_
+
65#define _Success_(p)
+
66#endif
diff --git a/search/all_1.js b/search/all_1.js index ae29840ff..86883e437 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -12,59 +12,61 @@ var searchData= ['basic_5fcu_9',['basic_cu',['../classstdex_1_1parser_1_1basic__cu.html',1,'stdex::parser']]], ['basic_5fcu_5fset_10',['basic_cu_set',['../classstdex_1_1parser_1_1basic__cu__set.html',1,'stdex::parser']]], ['basic_5fdate_11',['basic_date',['../classstdex_1_1parser_1_1basic__date.html',1,'stdex::parser']]], - ['basic_5fdns_5fdomain_5fchar_12',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], - ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_13',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], - ['basic_5fdns_5fname_14',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], - ['basic_5femail_5faddress_15',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], - ['basic_5femoticon_16',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], - ['basic_5feol_17',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], - ['basic_5ffraction_18',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], - ['basic_5ffstream_19',['basic_fstream',['../classstdex_1_1basic__fstream.html',1,'stdex']]], - ['basic_5finteger_20',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], - ['basic_5finteger10_21',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], - ['basic_5finteger10ts_22',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], - ['basic_5finteger16_23',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], - ['basic_5fiostreamfmt_24',['basic_iostreamfmt',['../classstdex_1_1basic__iostreamfmt.html',1,'stdex']]], - ['basic_5fipv4_5faddress_25',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], - ['basic_5fipv6_5faddress_26',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], - ['basic_5fipv6_5fscope_5fid_5fchar_27',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], - ['basic_5fisharedstrstream_28',['basic_isharedstrstream',['../classstdex_1_1basic__isharedstrstream.html',1,'stdex']]], - ['basic_5fistreamfmt_29',['basic_istreamfmt',['../classstdex_1_1basic__istreamfmt.html',1,'stdex']]], - ['basic_5fiterations_30',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], - ['basic_5fjson_5fstring_31',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], - ['basic_5fmixed_5fnumeral_32',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], - ['basic_5fmonetary_5fnumeral_33',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], - ['basic_5fnoop_34',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], - ['basic_5fostreamfmt_35',['basic_ostreamfmt',['../classstdex_1_1basic__ostreamfmt.html',1,'stdex']]], - ['basic_5fparser_36',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], - ['basic_5fparser_3c_20char_20_3e_37',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], - ['basic_5fpermutation_38',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], - ['basic_5fphone_5fnumber_39',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], - ['basic_5fpunct_5fcu_40',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], - ['basic_5fpunct_5fcu_3c_20char_20_3e_41',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], - ['basic_5froman_5fnumeral_42',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], - ['basic_5fscientific_5fnumeral_43',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], - ['basic_5fscore_44',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], - ['basic_5fsequence_45',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], - ['basic_5fset_46',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], - ['basic_5fset_3c_20char_20_3e_47',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], - ['basic_5fsharedstrbuf_48',['basic_sharedstrbuf',['../classstdex_1_1basic__sharedstrbuf.html',1,'stdex']]], - ['basic_5fsigned_5fnumeral_49',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], - ['basic_5fspace_5fcu_50',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5fcu_3c_20char_20_3e_51',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5for_5fpunct_5fcu_52',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_53',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], - ['basic_5fstring_54',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], - ['basic_5fstring_5fbranch_55',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], - ['basic_5fstringstream_56',['basic_stringstream',['../classstdex_1_1basic__stringstream.html#ab394645b71493be2725cd87c927b79fa',1,'stdex::basic_stringstream::basic_stringstream(const std::basic_string< _Elem2, _Traits2, _Alloc2 > &filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)'],['../classstdex_1_1basic__stringstream.html#a2b348acda5a00a457b177a121666c074',1,'stdex::basic_stringstream::basic_stringstream(const T *filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)'],['../classstdex_1_1basic__stringstream.html',1,'stdex::basic_stringstream< _Elem, _Traits, _Alloc >']]], - ['basic_5ftime_57',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], - ['basic_5furl_58',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], - ['basic_5furl_5fpassword_5fchar_59',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_60',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_61',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_5fchar_62',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_63',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], - ['basic_5furl_5fusername_5fchar_64',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], - ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_65',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], - ['buf_66',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf']]] + ['basic_5fdiagstream_12',['basic_diagstream',['../classstdex_1_1basic__diagstream.html',1,'stdex']]], + ['basic_5fdiagstreambuf_13',['basic_diagstreambuf',['../classstdex_1_1basic__diagstreambuf.html',1,'stdex']]], + ['basic_5fdns_5fdomain_5fchar_14',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_15',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fname_16',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], + ['basic_5femail_5faddress_17',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], + ['basic_5femoticon_18',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], + ['basic_5feol_19',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], + ['basic_5ffraction_20',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], + ['basic_5ffstream_21',['basic_fstream',['../classstdex_1_1basic__fstream.html',1,'stdex']]], + ['basic_5finteger_22',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], + ['basic_5finteger10_23',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], + ['basic_5finteger10ts_24',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], + ['basic_5finteger16_25',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], + ['basic_5fiostreamfmt_26',['basic_iostreamfmt',['../classstdex_1_1basic__iostreamfmt.html',1,'stdex']]], + ['basic_5fipv4_5faddress_27',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5faddress_28',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5fscope_5fid_5fchar_29',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['basic_5fisharedstrstream_30',['basic_isharedstrstream',['../classstdex_1_1basic__isharedstrstream.html',1,'stdex']]], + ['basic_5fistreamfmt_31',['basic_istreamfmt',['../classstdex_1_1basic__istreamfmt.html',1,'stdex']]], + ['basic_5fiterations_32',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], + ['basic_5fjson_5fstring_33',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], + ['basic_5fmixed_5fnumeral_34',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], + ['basic_5fmonetary_5fnumeral_35',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], + ['basic_5fnoop_36',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], + ['basic_5fostreamfmt_37',['basic_ostreamfmt',['../classstdex_1_1basic__ostreamfmt.html',1,'stdex']]], + ['basic_5fparser_38',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fparser_3c_20char_20_3e_39',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fpermutation_40',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_41',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_42',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_43',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_44',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_45',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_46',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_47',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_48',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_49',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsharedstrbuf_50',['basic_sharedstrbuf',['../classstdex_1_1basic__sharedstrbuf.html',1,'stdex']]], + ['basic_5fsigned_5fnumeral_51',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_52',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_53',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_54',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_55',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_56',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_57',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], + ['basic_5fstringstream_58',['basic_stringstream',['../classstdex_1_1basic__stringstream.html#ab394645b71493be2725cd87c927b79fa',1,'stdex::basic_stringstream::basic_stringstream(const std::basic_string< _Elem2, _Traits2, _Alloc2 > &filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)'],['../classstdex_1_1basic__stringstream.html#a2b348acda5a00a457b177a121666c074',1,'stdex::basic_stringstream::basic_stringstream(const T *filename, std::ios_base::openmode mode=std::ios_base::in, int prot=std::ios_base::_Default_open_prot)'],['../classstdex_1_1basic__stringstream.html',1,'stdex::basic_stringstream< _Elem, _Traits, _Alloc >']]], + ['basic_5ftime_59',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], + ['basic_5furl_60',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_61',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_62',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_63',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_64',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_65',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_66',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_67',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['buf_68',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf']]] ]; diff --git a/search/classes_1.js b/search/classes_1.js index 13a44be61..a79d2682f 100644 --- a/search/classes_1.js +++ b/search/classes_1.js @@ -11,58 +11,60 @@ var searchData= ['basic_5fcu_8',['basic_cu',['../classstdex_1_1parser_1_1basic__cu.html',1,'stdex::parser']]], ['basic_5fcu_5fset_9',['basic_cu_set',['../classstdex_1_1parser_1_1basic__cu__set.html',1,'stdex::parser']]], ['basic_5fdate_10',['basic_date',['../classstdex_1_1parser_1_1basic__date.html',1,'stdex::parser']]], - ['basic_5fdns_5fdomain_5fchar_11',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], - ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_12',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], - ['basic_5fdns_5fname_13',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], - ['basic_5femail_5faddress_14',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], - ['basic_5femoticon_15',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], - ['basic_5feol_16',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], - ['basic_5ffraction_17',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], - ['basic_5ffstream_18',['basic_fstream',['../classstdex_1_1basic__fstream.html',1,'stdex']]], - ['basic_5finteger_19',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], - ['basic_5finteger10_20',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], - ['basic_5finteger10ts_21',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], - ['basic_5finteger16_22',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], - ['basic_5fiostreamfmt_23',['basic_iostreamfmt',['../classstdex_1_1basic__iostreamfmt.html',1,'stdex']]], - ['basic_5fipv4_5faddress_24',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], - ['basic_5fipv6_5faddress_25',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], - ['basic_5fipv6_5fscope_5fid_5fchar_26',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], - ['basic_5fisharedstrstream_27',['basic_isharedstrstream',['../classstdex_1_1basic__isharedstrstream.html',1,'stdex']]], - ['basic_5fistreamfmt_28',['basic_istreamfmt',['../classstdex_1_1basic__istreamfmt.html',1,'stdex']]], - ['basic_5fiterations_29',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], - ['basic_5fjson_5fstring_30',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], - ['basic_5fmixed_5fnumeral_31',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], - ['basic_5fmonetary_5fnumeral_32',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], - ['basic_5fnoop_33',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], - ['basic_5fostreamfmt_34',['basic_ostreamfmt',['../classstdex_1_1basic__ostreamfmt.html',1,'stdex']]], - ['basic_5fparser_35',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], - ['basic_5fparser_3c_20char_20_3e_36',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], - ['basic_5fpermutation_37',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], - ['basic_5fphone_5fnumber_38',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], - ['basic_5fpunct_5fcu_39',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], - ['basic_5fpunct_5fcu_3c_20char_20_3e_40',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], - ['basic_5froman_5fnumeral_41',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], - ['basic_5fscientific_5fnumeral_42',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], - ['basic_5fscore_43',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], - ['basic_5fsequence_44',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], - ['basic_5fset_45',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], - ['basic_5fset_3c_20char_20_3e_46',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], - ['basic_5fsharedstrbuf_47',['basic_sharedstrbuf',['../classstdex_1_1basic__sharedstrbuf.html',1,'stdex']]], - ['basic_5fsigned_5fnumeral_48',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], - ['basic_5fspace_5fcu_49',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5fcu_3c_20char_20_3e_50',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5for_5fpunct_5fcu_51',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], - ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_52',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], - ['basic_5fstring_53',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], - ['basic_5fstring_5fbranch_54',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], - ['basic_5fstringstream_55',['basic_stringstream',['../classstdex_1_1basic__stringstream.html',1,'stdex']]], - ['basic_5ftime_56',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], - ['basic_5furl_57',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], - ['basic_5furl_5fpassword_5fchar_58',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_59',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_60',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_5fchar_61',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], - ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_62',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], - ['basic_5furl_5fusername_5fchar_63',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], - ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_64',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]] + ['basic_5fdiagstream_11',['basic_diagstream',['../classstdex_1_1basic__diagstream.html',1,'stdex']]], + ['basic_5fdiagstreambuf_12',['basic_diagstreambuf',['../classstdex_1_1basic__diagstreambuf.html',1,'stdex']]], + ['basic_5fdns_5fdomain_5fchar_13',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_14',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fname_15',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], + ['basic_5femail_5faddress_16',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], + ['basic_5femoticon_17',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], + ['basic_5feol_18',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], + ['basic_5ffraction_19',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], + ['basic_5ffstream_20',['basic_fstream',['../classstdex_1_1basic__fstream.html',1,'stdex']]], + ['basic_5finteger_21',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], + ['basic_5finteger10_22',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], + ['basic_5finteger10ts_23',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], + ['basic_5finteger16_24',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], + ['basic_5fiostreamfmt_25',['basic_iostreamfmt',['../classstdex_1_1basic__iostreamfmt.html',1,'stdex']]], + ['basic_5fipv4_5faddress_26',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5faddress_27',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5fscope_5fid_5fchar_28',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['basic_5fisharedstrstream_29',['basic_isharedstrstream',['../classstdex_1_1basic__isharedstrstream.html',1,'stdex']]], + ['basic_5fistreamfmt_30',['basic_istreamfmt',['../classstdex_1_1basic__istreamfmt.html',1,'stdex']]], + ['basic_5fiterations_31',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], + ['basic_5fjson_5fstring_32',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], + ['basic_5fmixed_5fnumeral_33',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], + ['basic_5fmonetary_5fnumeral_34',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], + ['basic_5fnoop_35',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], + ['basic_5fostreamfmt_36',['basic_ostreamfmt',['../classstdex_1_1basic__ostreamfmt.html',1,'stdex']]], + ['basic_5fparser_37',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fparser_3c_20char_20_3e_38',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fpermutation_39',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_40',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_41',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_42',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_43',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_44',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_45',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_46',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_47',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_48',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsharedstrbuf_49',['basic_sharedstrbuf',['../classstdex_1_1basic__sharedstrbuf.html',1,'stdex']]], + ['basic_5fsigned_5fnumeral_50',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_51',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_52',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_53',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_54',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_55',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_56',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], + ['basic_5fstringstream_57',['basic_stringstream',['../classstdex_1_1basic__stringstream.html',1,'stdex']]], + ['basic_5ftime_58',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], + ['basic_5furl_59',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_60',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_61',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_62',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_63',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_64',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_65',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_66',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]] ]; diff --git a/sgml_8hpp_source.html b/sgml_8hpp_source.html index 98af037a0..6722fce07 100644 --- a/sgml_8hpp_source.html +++ b/sgml_8hpp_source.html @@ -423,7 +423,7 @@ $(function() { diff --git a/sgml__unicode_8hpp_source.html b/sgml__unicode_8hpp_source.html index cbd3311b9..eb2bf4d65 100644 --- a/sgml__unicode_8hpp_source.html +++ b/sgml__unicode_8hpp_source.html @@ -3170,7 +3170,7 @@ $(function() { diff --git a/string_8hpp_source.html b/string_8hpp_source.html index ad3f32c74..6cb2ff67b 100644 --- a/string_8hpp_source.html +++ b/string_8hpp_source.html @@ -87,641 +87,660 @@ $(function() {
8#include "sal.hpp"
9#include <assert.h>
10#include <ctype.h>
-
11#include <stdint.h>
-
12#include <stdexcept>
-
13
-
14namespace stdex
-
15{
-
16#ifdef _WIN32
-
17 using locale_t = _locale_t;
-
18#else
-
19 using locale_t = ::locale_t;
-
20#endif
-
21
-
25#ifdef _WIN32
-
26 typedef wchar_t utf16_t;
-
27#else
-
28 typedef char16_t utf16_t;
-
29#endif
-
30
-
36 inline bool is_high_surrogate(_In_ utf16_t chr)
-
37 {
-
38 return 0xd800 < chr && chr < 0xdc00;
-
39 }
-
40
-
46 inline bool is_low_surrogate(_In_ utf16_t chr)
-
47 {
-
48 return 0xdc00 < chr && chr < 0xe000;
-
49 }
-
50
-
56 inline bool is_surrogate_pair(_In_reads_(2) const utf16_t* str)
-
57 {
-
58 return is_high_surrogate(str[0]) && is_low_surrogate(str[1]);
-
59 }
-
60
-
66 inline char32_t surrogate_pair_to_ucs4(_In_reads_(2) const utf16_t* str)
-
67 {
-
68 assert(is_surrogate_pair(str));
-
69 return
-
70 ((char32_t)(str[0] - 0xd800) << 10) +
-
71 (char32_t)(str[1] - 0xdc00) +
-
72 0x10000;
-
73 }
-
74
-
80 inline void ucs4_to_surrogate_pair(_Out_writes_(2) utf16_t* str, _In_ char32_t chr)
-
81 {
-
82 assert(chr >= 0x10000);
-
83 chr -= 0x10000;
-
84 str[0] = 0xd800 + (char32_t)((chr >> 10) & 0x3ff);
-
85 str[1] = 0xdc00 + (char32_t)(chr & 0x3ff);
-
86 }
-
87
-
93 inline bool iscombining(_In_ char32_t chr)
-
94 {
-
95 return
-
96 0x0300 <= chr && chr < 0x0370 ||
-
97 0x1dc0 <= chr && chr < 0x1e00 ||
-
98 0x20d0 <= chr && chr < 0x2100 ||
-
99 0xfe20 <= chr && chr < 0xfe30;
-
100 }
-
101
-
107 template <class T>
-
108 inline size_t islbreak(_In_ T chr)
-
109 {
-
110 return chr == '\n' || chr == '\r';
-
111 }
-
112
-
119 template <class T>
-
120 inline size_t islbreak(_In_reads_or_z_opt_(count) const T* chr, _In_ size_t count)
-
121 {
-
122 _Analysis_assume_(chr || !count);
-
123 if (count >= 2 && (chr[0] == '\r' && chr[1] == '\n' || chr[0] == '\n' && chr[1] == '\r'))
-
124 return 2;
-
125 if (count > 1 && (chr[0] == '\n' || chr[0] == '\r'))
-
126 return 1;
-
127 return 0;
-
128 }
-
129
-
136 inline size_t glyphlen(_In_reads_or_z_opt_(count) const wchar_t* glyph, size_t count)
-
137 {
-
138 _Analysis_assume_(glyph || !count);
-
139 if (count) {
-
140#ifdef _WIN32
-
141 size_t i = count < 2 || !is_surrogate_pair(glyph) ? 1 : 2;
-
142#else
-
143 size_t i = 1;
-
144#endif
-
145 for (; i < count && iscombining(glyph[i]); ++i);
-
146 return i;
-
147 }
-
148 return 0;
-
149 }
-
150
-
158 template <class T>
-
159 inline size_t strlen(_In_z_ const T* str)
-
160 {
-
161 assert(str);
-
162 size_t i;
-
163 for (i = 0; str[i]; ++i);
-
164 return i;
-
165 }
-
166
-
175 template <class T>
-
176 inline size_t strnlen(_In_reads_or_z_opt_(count) const T* str, _In_ size_t count)
-
177 {
-
178 assert(str);
-
179 size_t i;
-
180 for (i = 0; i < count && str[i]; ++i);
-
181 return i;
-
182 }
-
183
-
184 constexpr auto npos{ static_cast<size_t>(-1) };
-
185
-
195 template <class T>
-
196 inline size_t strnchr(
-
197 _In_reads_or_z_opt_(count) const T* str,
-
198 _In_ size_t count,
-
199 _In_ T chr)
-
200 {
-
201 assert(str || !count);
-
202 for (size_t i = 0; i < count && str[i]; ++i)
-
203 if (str[i] == chr) return i;
-
204 return npos;
-
205 }
-
206
-
216 template <class T>
-
217 inline size_t strrnchr(
-
218 _In_reads_or_z_opt_(count) const T* str,
-
219 _In_ size_t count,
-
220 _In_ T chr)
-
221 {
-
222 assert(str || !count);
-
223 size_t z = npos;
-
224 for (size_t i = 0; i < count && str[i]; ++i)
-
225 if (str[i] == chr) z = i;
-
226 return z;
-
227 }
-
228
-
238 template <class T>
-
239 inline size_t strnichr(
-
240 _In_reads_or_z_opt_(count) const T* str,
-
241 _In_ size_t count,
-
242 _In_ T chr,
-
243 _In_ const std::locale& locale)
-
244 {
-
245 assert(str || !count);
-
246 const auto& ctype = std::use_facet<std::ctype<T>>(locale);
-
247 chr = ctype.tolower(chr);
-
248 for (size_t i = 0; i < count && str[i]; ++i)
-
249 if (ctype.tolower(str[i]) == chr) return i;
-
250 return npos;
-
251 }
-
252
-
262 template <class T>
-
263 inline size_t strrnichr(
-
264 _In_reads_or_z_opt_(count) const T* str,
-
265 _In_ size_t count,
-
266 _In_ T chr,
-
267 _In_ const std::locale& locale)
-
268 {
-
269 assert(str || !count);
-
270 const auto& ctype = std::use_facet<std::ctype<T>>(locale);
-
271 chr = ctype.tolower(chr);
-
272 size_t z = npos;
-
273 for (size_t i = 0; i < count && str[i]; ++i)
-
274 if (ctype.tolower(str[i]) == chr) z = i;
-
275 return z;
-
276 }
-
277
-
288 template <class T1, class T2>
-
289 inline int strncmp(
-
290 _In_reads_or_z_opt_(count1) const T1* str1, _In_ size_t count1,
-
291 _In_reads_or_z_opt_(count2) const T2* str2, _In_ size_t count2)
-
292 {
-
293 assert(str1 || !count1);
-
294 assert(str2 || !count2);
-
295 size_t i; T1 a; T2 b;
-
296 for (i = 0; i < count1 && i < count2 && ((a = str1[i]) | (b = str2[i])); ++i) {
-
297 if (a > b) return +1;
-
298 if (a < b) return -1;
-
299 }
-
300 if (i < count1 && str1[i]) return +1;
-
301 if (i < count2 && str2[i]) return -1;
-
302 return 0;
-
303 }
-
304
-
315 template <class T>
-
316 inline int strncoll(
-
317 _In_reads_or_z_opt_(count1) const T* str1, _In_ size_t count1,
-
318 _In_reads_or_z_opt_(count2) const T* str2, _In_ size_t count2,
-
319 _In_ const std::locale& locale)
-
320 {
-
321 assert(str1 || !count1);
-
322 assert(str2 || !count2);
-
323 auto& collate = std::use_facet<std::collate<T>>(locale);
-
324 return collate.compare(str1, str1 + count1, str2, str2 + count2);
-
325 }
-
326
-
337 template <class T1, class T2>
-
338 inline int strnicmp(
-
339 _In_reads_or_z_opt_(count1) const T1* str1, _In_ size_t count1,
-
340 _In_reads_or_z_opt_(count2) const T2* str2, _In_ size_t count2,
-
341 _In_ const std::locale& locale)
-
342 {
-
343 assert(str1 || !count1);
-
344 assert(str2 || !count2);
-
345 size_t i; T1 a; T2 b;
-
346 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
-
347 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
-
348 for (i = 0; i < count1 && i < count2 && ((a = ctype1.tolower(str1[i])) | (b = ctype2.tolower(str2[i]))); i++) {
-
349 if (a > b) return +1;
-
350 if (a < b) return -1;
-
351 }
-
352 if (i < count1 && str1[i]) return +1;
-
353 if (i < count2 && str2[i]) return -1;
-
354 return 0;
-
355 }
-
356
-
366 template <class T1, class T2>
-
367 inline size_t strnstr(
-
368 _In_reads_or_z_opt_(count) const T1* str,
-
369 _In_ size_t count,
-
370 _In_z_ const T2* sample)
-
371 {
-
372 assert(str || !count);
-
373 assert(sample);
-
374 for (size_t offset = 0;; ++offset) {
-
375 for (size_t i = offset, j = 0;; ++i, ++j) {
-
376 if (!sample[j])
-
377 return offset;
-
378 if (i >= count || !str[i])
-
379 return npos;
-
380 if (str[i] != sample[j])
-
381 break;
-
382 }
-
383 }
-
384 }
-
385
-
395 template <class T1, class T2>
-
396 inline size_t strnistr(
-
397 _In_reads_or_z_opt_(count) const T1* str,
-
398 _In_ size_t count,
-
399 _In_z_ const T2* sample,
-
400 _In_ const std::locale& locale)
-
401 {
-
402 assert(str || !count);
-
403 assert(sample);
-
404 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
-
405 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
-
406 for (size_t offset = 0;; ++offset) {
-
407 for (size_t i = offset, j = 0;; ++i, ++j) {
-
408 if (!sample[j])
-
409 return offset;
-
410 if (i >= count || !str[i])
-
411 return npos;
-
412 if (ctype1.tolower(str[i]) != ctype2.tolower(sample[j]))
-
413 break;
-
414 }
-
415 }
-
416 }
-
417
-
427 template <class T1, class T2>
-
428 inline size_t strncpy(
-
429 _Out_writes_(count) _Post_maybez_ T1* dst,
-
430 _In_reads_or_z_opt_(count) const T2* src, _In_ size_t count)
-
431 {
-
432 assert(dst && src || !count);
-
433 for (size_t i = 0; ; ++i) {
-
434 if (i >= count)
-
435 return i;
-
436 if ((dst[i] = src[i]) == 0)
-
437 return i;
-
438 }
-
439 }
-
440
-
451 template <class T1, class T2>
-
452 inline size_t strncpy(
-
453 _Out_writes_(count_dst) _Post_maybez_ T1* dst, _In_ size_t count_dst,
-
454 _In_reads_or_z_opt_(count_src) const T2* src, _In_ size_t count_src)
-
455 {
-
456 assert(dst || !count_dst);
-
457 assert(src || !count_src);
-
458 for (size_t i = 0; ; ++i)
-
459 {
-
460 if (i > count_dst)
-
461 return i;
-
462 if (i > count_src) {
-
463 dst[i] = 0;
-
464 return i;
-
465 }
-
466 if ((dst[i] = src[i]) == 0)
-
467 return i;
-
468 }
-
469 }
-
470
-
480 template <class T>
-
481 inline size_t crlf2nl(_Out_writes_z_(strlen(src)) T* dst, _In_z_ const T* src)
-
482 {
-
483 assert(dst);
-
484 assert(src);
-
485 size_t i, j;
-
486 for (i = j = 0; src[j];) {
-
487 if (src[j] != '\r' || src[j + 1] != '\n')
-
488 dst[i++] = src[j++];
-
489 else {
-
490 dst[i++] = '\n';
-
491 j += 2;
-
492 }
-
493 }
-
494 dst[i] = 0;
-
495 return i;
-
496 }
-
497
-
499 template <class T, class T_bin>
-
500 inline T_bin strtoint(
-
501 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
502 _Out_opt_ size_t* end,
-
503 _In_ int radix,
-
504 _Out_ uint8_t& flags)
-
505 {
-
506 assert(str || !count);
-
507 assert(radix == 0 || 2 <= radix && radix <= 36);
-
508
-
509 size_t i = 0;
-
510 T_bin value = 0, digit,
-
511 max_ui = (T_bin)-1,
-
512 max_ui_pre1, max_ui_pre2;
-
513
-
514 flags = 0;
-
515
-
516 // Skip leading spaces.
-
517 for (;; ++i) {
-
518 if (i >= count || !str[i]) goto error;
-
519 if (!isspace(str[i])) break;
-
520 }
-
521
-
522 // Read the sign.
-
523 if (str[i] == '+') {
-
524 flags &= ~0x01;
-
525 ++i;
-
526 if (i >= count || !str[i]) goto error;
-
527 }
-
528 else if (str[i] == '-') {
-
529 flags |= 0x01;
-
530 ++i;
-
531 if (i >= count || !str[i]) goto error;
-
532 }
-
533
-
534 if (radix == 16) {
-
535 // On hexadecimal, allow leading 0x.
-
536 if (str[i] == '0' && i + 1 < count && (str[i + 1] == 'x' || str[i + 1] == 'X')) {
-
537 i += 2;
-
538 if (i >= count || !str[i]) goto error;
-
539 }
-
540 }
-
541 else if (!radix) {
-
542 // Autodetect radix.
-
543 if (str[i] == '0') {
-
544 ++i;
-
545 if (i >= count || !str[i]) goto error;
-
546 if (str[i] == 'x' || str[i] == 'X') {
-
547 radix = 16;
-
548 ++i;
-
549 if (i >= count || !str[i]) goto error;
-
550 }
-
551 else
-
552 radix = 8;
-
553 }
-
554 else
-
555 radix = 10;
-
556 }
-
557
-
558 // We have the radix.
-
559 max_ui_pre1 = max_ui / (T_bin)radix;
-
560 max_ui_pre2 = max_ui % (T_bin)radix;
-
561 for (;;) {
-
562 if ('0' <= str[i] && str[i] <= '9')
-
563 digit = (T_bin)str[i] - '0';
-
564 else if ('A' <= str[i] && str[i] <= 'Z')
-
565 digit = (T_bin)str[i] - 'A' + '\x0a';
-
566 else if ('a' <= str[i] && str[i] <= 'z')
-
567 digit = (T_bin)str[i] - 'a' + '\x0a';
-
568 else
-
569 goto error;
-
570 if (digit >= (T_bin)radix)
-
571 goto error;
-
572
-
573 if (value < max_ui_pre1 || // Multiplication nor addition will not overflow.
-
574 value == max_ui_pre1 && digit <= max_ui_pre2) // Small digits will not overflow.
-
575 value = value * (T_bin)radix + digit;
-
576 else {
-
577 // Overflow!
-
578 flags |= 0x02;
-
579 }
-
580
-
581 ++i;
-
582 if (i >= count || !str[i])
-
583 goto error;
-
584 }
-
585
-
586 error:
-
587 if (end) *end = i;
-
588 return value;
-
589 }
-
591
-
602 template <class T, class T_bin>
-
603 T_bin strtoint(
-
604 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
605 _Out_opt_ size_t* end,
-
606 _In_ int radix)
-
607 {
-
608 uint8_t flags;
-
609 T_bin value;
-
610
-
611 switch (sizeof(T_bin)) {
-
612 case 1:
-
613 value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags);
-
614 if ((flags & 0x01) && (value & 0x80)) {
-
615 // Sign bit is 1 => overflow.
-
616 flags |= 0x02;
-
617 }
-
618 return (flags & 0x02) ?
-
619 (flags & 0x01) ? (T_bin)0x80 : (T_bin)0x7f :
-
620 (flags & 0x01) ? -value : value;
-
621
-
622 case 2:
-
623 value = (T_bin)strtoint<T, T_U2>(str, count, end, radix, flags);
-
624 if ((flags & 0x01) && (value & 0x8000)) {
-
625 // Sign bit is 1 => overflow.
-
626 flags |= 0x02;
-
627 }
-
628 return (flags & 0x02) ?
-
629 (flags & 0x01) ? (T_bin)0x8000 : (T_bin)0x7fff :
-
630 (flags & 0x01) ? -value : value;
-
631
-
632 case 4:
-
633 value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags);
-
634 if ((flags & 0x01) && (value & 0x80000000)) {
-
635 // Sign bit is 1 => overflow.
-
636 flags |= 0x02;
-
637 }
-
638 return (flags & 0x02) ?
-
639 (flags & 0x01) ? (T_bin)0x80000000 : (T_bin)0x7fffffff :
-
640 (flags & 0x01) ? -value : value;
-
641
-
642 case 8:
-
643 value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags);
-
644 if ((flags & 0x01) && (value & 0x8000000000000000)) {
-
645 // Sign bit is 1 => overflow.
-
646 flags |= 0x02;
-
647 }
-
648 return (flags & 0x02) ?
-
649 (flags & 0x01) ? (T_bin)0x8000000000000000 : (T_bin)0x7fffffffffffffff :
-
650 (flags & 0x01) ? -value : value;
-
651
-
652 default:
-
653 throw std::invalid_argument("Unsupported bit length");
-
654 }
-
655 }
-
656
-
667 template <class T, class T_bin>
-
668 inline T_bin strtouint(
-
669 _In_reads_or_z_opt_(count) const T* str,
-
670 _In_ size_t count,
-
671 _Out_opt_ size_t* end,
-
672 _In_ int radix)
-
673 {
-
674 uint8_t flags;
-
675 T_bin value;
-
676
-
677 switch (sizeof(T_bin)) {
-
678 case 1: value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags); break;
-
679 case 2: value = (T_bin)strtoint<T, uint16_t>(str, count, end, radix, flags); break;
-
680 case 4: value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags); break;
-
681 case 8: value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags); break;
-
682 default: throw std::invalid_argument("Unsupported bit length");
-
683 }
-
684
-
685 return (flags & 0x02) ?
-
686 (flags & 0x01) ? (T_bin)0 : (T_bin)-1 :
-
687 (flags & 0x01) ? ~value : value;
-
688 }
-
689
-
700 template <class T>
-
701 inline int32_t strto32(
-
702 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
703 _Out_opt_ size_t* end,
-
704 _In_ int radix)
-
705 {
-
706 return strtoint<T, int32_t>(str, count, end, radix);
-
707 }
-
708
-
719 template <class T>
-
720 inline int64_t strto64(
-
721 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
722 _Out_opt_ size_t* end,
-
723 _In_ int radix)
-
724 {
-
725 return strtoint<T, int64_t>(str, count, end, radix);
-
726 }
-
727
-
739 template <class T>
-
740 inline intptr_t strtoi(
-
741 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
742 _Out_opt_ size_t* end,
-
743 _In_ int radix)
-
744 {
-
745#if defined(_WIN64) || defined(__LP64__)
-
746 return (intptr_t)strto64(str, count, end, radix);
-
747#else
-
748 return (intptr_t)strto32(str, count, end, radix);
-
749#endif
-
750 }
-
751
-
762 template <class T>
-
763 inline uint32_t strtou32(
-
764 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
765 _Out_opt_ size_t* end,
-
766 _In_ int radix)
-
767 {
-
768 return strtouint<T, uint32_t>(str, count, end, radix);
-
769 }
-
770
-
781 template <class T>
-
782 inline uint64_t strtou64(
-
783 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
784 _Out_opt_ size_t* end,
-
785 _In_ int radix)
-
786 {
-
787 return strtouint<T, uint64_t>(str, count, end, radix);
-
788 }
-
789
-
801 template <class T>
-
802 inline size_t strtoui(
-
803 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
-
804 _Out_opt_ size_t* end,
-
805 _In_ int radix)
-
806 {
-
807#if defined(_WIN64) || defined(__LP64__)
-
808 return (size_t)strtou64(str, count, end, radix);
-
809#else
-
810 return (size_t)strtou32(str, count, end, radix);
-
811#endif
-
812 }
-
813
-
815 inline int vsnprintf(_Out_z_cap_(capacity) char *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const char *format, _In_opt_ locale_t locale, _In_ va_list arg)
-
816 {
-
817 int r;
-
818#ifdef _WIN32
-
819 // Don't use _vsnprintf_s(). It terminates the string even if we want to print to the edge of the buffer.
-
820#pragma warning(suppress: 4996)
-
821 r = _vsnprintf_l(str, capacity, format, locale, arg);
-
822#else
-
823 r = vsnprintf(str, capacity, format, arg);
-
824#endif
-
825 if (r == -1 && strnlen(str, capacity) == capacity) {
-
826 // Buffer overrun. Estimate buffer size for the next iteration.
-
827 capacity += std::max<size_t>(capacity / 8, 0x80);
-
828 if (capacity > INT_MAX)
-
829 throw std::invalid_argument("string too big");
-
830 return (int)capacity;
-
831 }
-
832 return r;
-
833 }
-
834
-
835 inline int vsnprintf(_Out_z_cap_(capacity) wchar_t *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const wchar_t *format, _In_opt_ locale_t locale, _In_ va_list arg)
-
836 {
-
837 int r;
-
838
-
839#ifdef _WIN32
-
840 // Don't use _vsnwprintf_s(). It terminates the string even if we want to print to the edge of the buffer.
-
841#pragma warning(suppress: 4996)
-
842 r = _vsnwprintf_l(str, capacity, format, locale, arg);
-
843#else
-
844 r = vswprintf(str, capacity, format, arg);
-
845#endif
-
846 if (r == -1 && strnlen(str, capacity) == capacity) {
-
847 // Buffer overrun. Estimate buffer size for the next iteration.
-
848 capacity += std::max<size_t>(capacity / 8, 0x80);
-
849 if (capacity > INT_MAX)
-
850 throw std::invalid_argument("string too big");
-
851 return (int)capacity;
-
852 }
-
853 return r;
-
854 }
-
856
-
865 template<class _Elem, class _Traits, class _Ax>
-
866 inline void vappendf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_opt_ locale_t locale, _In_ va_list arg)
-
867 {
-
868 _Elem buf[1024/sizeof(_Elem)];
-
869
-
870 // Try with stack buffer first.
-
871 int count = vsnprintf(buf, _countof(buf) - 1, format, locale, arg);
-
872 if (count >= 0) {
-
873 // Copy from stack.
-
874 str.append(buf, count);
-
875 } else {
-
876 for (size_t capacity = 2*1024/sizeof(_Elem);; capacity *= 2) {
-
877 // Allocate on heap and retry.
-
878 auto buf_dyn = std::make_unique<_Elem[]>(capacity);
-
879 count = vsnprintf(buf_dyn.get(), capacity - 1, format, locale, arg);
-
880 if (count >= 0) {
-
881 str.append(buf_dyn.get(), count);
-
882 break;
-
883 }
-
884 }
-
885 }
-
886 }
-
887
-
895 template<class _Elem, class _Traits, class _Ax>
-
896 inline void appendf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_opt_ locale_t locale, ...)
-
897 {
-
898 va_list arg;
-
899 va_start(arg, locale);
-
900 vappendf(str, format, locale, arg);
-
901 va_end(arg);
-
902 }
-
903
-
912 template<class _Elem, class _Traits, class _Ax>
-
913 inline void vsprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_opt_ locale_t locale, _In_ va_list arg)
-
914 {
-
915 str.clear();
-
916 appendf(str, format, locale, arg);
-
917 }
-
918
-
926 template<class _Elem, class _Traits, class _Ax>
-
927 inline void sprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_opt_ locale_t locale, ...)
-
928 {
-
929 va_list arg;
-
930 va_start(arg, locale);
-
931 vsprintf(str, format, locale, arg);
-
932 va_end(arg);
-
933 }
-
934}
+
11#include <stdarg.h>
+
12#include <stdint.h>
+
13#include <stdexcept>
+
14
+
15namespace stdex
+
16{
+
17#ifdef _WIN32
+
18 using locale_t = _locale_t;
+
19#else
+
20 using locale_t = ::locale_t;
+
21#endif
+
22
+
26#ifdef _WIN32
+
27 typedef wchar_t utf16_t;
+
28#else
+
29 typedef char16_t utf16_t;
+
30#endif
+
31
+
37 inline bool is_high_surrogate(_In_ utf16_t chr)
+
38 {
+
39 return 0xd800 < chr && chr < 0xdc00;
+
40 }
+
41
+
47 inline bool is_low_surrogate(_In_ utf16_t chr)
+
48 {
+
49 return 0xdc00 < chr && chr < 0xe000;
+
50 }
+
51
+
57 inline bool is_surrogate_pair(_In_reads_(2) const utf16_t* str)
+
58 {
+
59 return is_high_surrogate(str[0]) && is_low_surrogate(str[1]);
+
60 }
+
61
+
67 inline char32_t surrogate_pair_to_ucs4(_In_reads_(2) const utf16_t* str)
+
68 {
+
69 assert(is_surrogate_pair(str));
+
70 return
+
71 ((char32_t)(str[0] - 0xd800) << 10) +
+
72 (char32_t)(str[1] - 0xdc00) +
+
73 0x10000;
+
74 }
+
75
+
81 inline void ucs4_to_surrogate_pair(_Out_writes_(2) utf16_t* str, _In_ char32_t chr)
+
82 {
+
83 assert(chr >= 0x10000);
+
84 chr -= 0x10000;
+
85 str[0] = 0xd800 + (char32_t)((chr >> 10) & 0x3ff);
+
86 str[1] = 0xdc00 + (char32_t)(chr & 0x3ff);
+
87 }
+
88
+
94 inline bool iscombining(_In_ char32_t chr)
+
95 {
+
96 return
+
97 0x0300 <= chr && chr < 0x0370 ||
+
98 0x1dc0 <= chr && chr < 0x1e00 ||
+
99 0x20d0 <= chr && chr < 0x2100 ||
+
100 0xfe20 <= chr && chr < 0xfe30;
+
101 }
+
102
+
108 template <class T>
+
109 inline size_t islbreak(_In_ T chr)
+
110 {
+
111 return chr == '\n' || chr == '\r';
+
112 }
+
113
+
120 template <class T>
+
121 inline size_t islbreak(_In_reads_or_z_opt_(count) const T* chr, _In_ size_t count)
+
122 {
+
123 _Analysis_assume_(chr || !count);
+
124 if (count >= 2 && (chr[0] == '\r' && chr[1] == '\n' || chr[0] == '\n' && chr[1] == '\r'))
+
125 return 2;
+
126 if (count > 1 && (chr[0] == '\n' || chr[0] == '\r'))
+
127 return 1;
+
128 return 0;
+
129 }
+
130
+
137 inline size_t glyphlen(_In_reads_or_z_opt_(count) const wchar_t* glyph, size_t count)
+
138 {
+
139 _Analysis_assume_(glyph || !count);
+
140 if (count) {
+
141#ifdef _WIN32
+
142 size_t i = count < 2 || !is_surrogate_pair(glyph) ? 1 : 2;
+
143#else
+
144 size_t i = 1;
+
145#endif
+
146 for (; i < count && iscombining(glyph[i]); ++i);
+
147 return i;
+
148 }
+
149 return 0;
+
150 }
+
151
+
159 template <class T>
+
160 inline size_t strlen(_In_z_ const T* str)
+
161 {
+
162 assert(str);
+
163 size_t i;
+
164 for (i = 0; str[i]; ++i);
+
165 return i;
+
166 }
+
167
+
176 template <class T>
+
177 inline size_t strnlen(_In_reads_or_z_opt_(count) const T* str, _In_ size_t count)
+
178 {
+
179 assert(str);
+
180 size_t i;
+
181 for (i = 0; i < count && str[i]; ++i);
+
182 return i;
+
183 }
+
184
+
185 constexpr auto npos{ static_cast<size_t>(-1) };
+
186
+
196 template <class T>
+
197 inline size_t strnchr(
+
198 _In_reads_or_z_opt_(count) const T* str,
+
199 _In_ size_t count,
+
200 _In_ T chr)
+
201 {
+
202 assert(str || !count);
+
203 for (size_t i = 0; i < count && str[i]; ++i)
+
204 if (str[i] == chr) return i;
+
205 return npos;
+
206 }
+
207
+
217 template <class T>
+
218 inline size_t strrnchr(
+
219 _In_reads_or_z_opt_(count) const T* str,
+
220 _In_ size_t count,
+
221 _In_ T chr)
+
222 {
+
223 assert(str || !count);
+
224 size_t z = npos;
+
225 for (size_t i = 0; i < count && str[i]; ++i)
+
226 if (str[i] == chr) z = i;
+
227 return z;
+
228 }
+
229
+
239 template <class T>
+
240 inline size_t strnichr(
+
241 _In_reads_or_z_opt_(count) const T* str,
+
242 _In_ size_t count,
+
243 _In_ T chr,
+
244 _In_ const std::locale& locale)
+
245 {
+
246 assert(str || !count);
+
247 const auto& ctype = std::use_facet<std::ctype<T>>(locale);
+
248 chr = ctype.tolower(chr);
+
249 for (size_t i = 0; i < count && str[i]; ++i)
+
250 if (ctype.tolower(str[i]) == chr) return i;
+
251 return npos;
+
252 }
+
253
+
263 template <class T>
+
264 inline size_t strrnichr(
+
265 _In_reads_or_z_opt_(count) const T* str,
+
266 _In_ size_t count,
+
267 _In_ T chr,
+
268 _In_ const std::locale& locale)
+
269 {
+
270 assert(str || !count);
+
271 const auto& ctype = std::use_facet<std::ctype<T>>(locale);
+
272 chr = ctype.tolower(chr);
+
273 size_t z = npos;
+
274 for (size_t i = 0; i < count && str[i]; ++i)
+
275 if (ctype.tolower(str[i]) == chr) z = i;
+
276 return z;
+
277 }
+
278
+
289 template <class T1, class T2>
+
290 inline int strncmp(
+
291 _In_reads_or_z_opt_(count1) const T1* str1, _In_ size_t count1,
+
292 _In_reads_or_z_opt_(count2) const T2* str2, _In_ size_t count2)
+
293 {
+
294 assert(str1 || !count1);
+
295 assert(str2 || !count2);
+
296 size_t i; T1 a; T2 b;
+
297 for (i = 0; i < count1 && i < count2 && ((a = str1[i]) | (b = str2[i])); ++i) {
+
298 if (a > b) return +1;
+
299 if (a < b) return -1;
+
300 }
+
301 if (i < count1 && str1[i]) return +1;
+
302 if (i < count2 && str2[i]) return -1;
+
303 return 0;
+
304 }
+
305
+
316 template <class T>
+
317 inline int strncoll(
+
318 _In_reads_or_z_opt_(count1) const T* str1, _In_ size_t count1,
+
319 _In_reads_or_z_opt_(count2) const T* str2, _In_ size_t count2,
+
320 _In_ const std::locale& locale)
+
321 {
+
322 assert(str1 || !count1);
+
323 assert(str2 || !count2);
+
324 auto& collate = std::use_facet<std::collate<T>>(locale);
+
325 return collate.compare(str1, str1 + count1, str2, str2 + count2);
+
326 }
+
327
+
338 template <class T1, class T2>
+
339 inline int strnicmp(
+
340 _In_reads_or_z_opt_(count1) const T1* str1, _In_ size_t count1,
+
341 _In_reads_or_z_opt_(count2) const T2* str2, _In_ size_t count2,
+
342 _In_ const std::locale& locale)
+
343 {
+
344 assert(str1 || !count1);
+
345 assert(str2 || !count2);
+
346 size_t i; T1 a; T2 b;
+
347 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
+
348 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
+
349 for (i = 0; i < count1 && i < count2 && ((a = ctype1.tolower(str1[i])) | (b = ctype2.tolower(str2[i]))); i++) {
+
350 if (a > b) return +1;
+
351 if (a < b) return -1;
+
352 }
+
353 if (i < count1 && str1[i]) return +1;
+
354 if (i < count2 && str2[i]) return -1;
+
355 return 0;
+
356 }
+
357
+
367 template <class T1, class T2>
+
368 inline size_t strnstr(
+
369 _In_reads_or_z_opt_(count) const T1* str,
+
370 _In_ size_t count,
+
371 _In_z_ const T2* sample)
+
372 {
+
373 assert(str || !count);
+
374 assert(sample);
+
375 for (size_t offset = 0;; ++offset) {
+
376 for (size_t i = offset, j = 0;; ++i, ++j) {
+
377 if (!sample[j])
+
378 return offset;
+
379 if (i >= count || !str[i])
+
380 return npos;
+
381 if (str[i] != sample[j])
+
382 break;
+
383 }
+
384 }
+
385 }
+
386
+
396 template <class T1, class T2>
+
397 inline size_t strnistr(
+
398 _In_reads_or_z_opt_(count) const T1* str,
+
399 _In_ size_t count,
+
400 _In_z_ const T2* sample,
+
401 _In_ const std::locale& locale)
+
402 {
+
403 assert(str || !count);
+
404 assert(sample);
+
405 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
+
406 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
+
407 for (size_t offset = 0;; ++offset) {
+
408 for (size_t i = offset, j = 0;; ++i, ++j) {
+
409 if (!sample[j])
+
410 return offset;
+
411 if (i >= count || !str[i])
+
412 return npos;
+
413 if (ctype1.tolower(str[i]) != ctype2.tolower(sample[j]))
+
414 break;
+
415 }
+
416 }
+
417 }
+
418
+
428 template <class T1, class T2>
+
429 inline size_t strncpy(
+
430 _Out_writes_(count) _Post_maybez_ T1* dst,
+
431 _In_reads_or_z_opt_(count) const T2* src, _In_ size_t count)
+
432 {
+
433 assert(dst && src || !count);
+
434 for (size_t i = 0; ; ++i) {
+
435 if (i >= count)
+
436 return i;
+
437 if ((dst[i] = src[i]) == 0)
+
438 return i;
+
439 }
+
440 }
+
441
+
452 template <class T1, class T2>
+
453 inline size_t strncpy(
+
454 _Out_writes_(count_dst) _Post_maybez_ T1* dst, _In_ size_t count_dst,
+
455 _In_reads_or_z_opt_(count_src) const T2* src, _In_ size_t count_src)
+
456 {
+
457 assert(dst || !count_dst);
+
458 assert(src || !count_src);
+
459 for (size_t i = 0; ; ++i)
+
460 {
+
461 if (i > count_dst)
+
462 return i;
+
463 if (i > count_src) {
+
464 dst[i] = 0;
+
465 return i;
+
466 }
+
467 if ((dst[i] = src[i]) == 0)
+
468 return i;
+
469 }
+
470 }
+
471
+
481 template <class T>
+
482 inline size_t crlf2nl(_Out_writes_z_(strlen(src)) T* dst, _In_z_ const T* src)
+
483 {
+
484 assert(dst);
+
485 assert(src);
+
486 size_t i, j;
+
487 for (i = j = 0; src[j];) {
+
488 if (src[j] != '\r' || src[j + 1] != '\n')
+
489 dst[i++] = src[j++];
+
490 else {
+
491 dst[i++] = '\n';
+
492 j += 2;
+
493 }
+
494 }
+
495 dst[i] = 0;
+
496 return i;
+
497 }
+
498
+
500 template <class T, class T_bin>
+
501 inline T_bin strtoint(
+
502 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
503 _Out_opt_ size_t* end,
+
504 _In_ int radix,
+
505 _Out_ uint8_t& flags)
+
506 {
+
507 assert(str || !count);
+
508 assert(radix == 0 || 2 <= radix && radix <= 36);
+
509
+
510 size_t i = 0;
+
511 T_bin value = 0, digit,
+
512 max_ui = (T_bin)-1,
+
513 max_ui_pre1, max_ui_pre2;
+
514
+
515 flags = 0;
+
516
+
517 // Skip leading spaces.
+
518 for (;; ++i) {
+
519 if (i >= count || !str[i]) goto error;
+
520 if (!isspace(str[i])) break;
+
521 }
+
522
+
523 // Read the sign.
+
524 if (str[i] == '+') {
+
525 flags &= ~0x01;
+
526 ++i;
+
527 if (i >= count || !str[i]) goto error;
+
528 }
+
529 else if (str[i] == '-') {
+
530 flags |= 0x01;
+
531 ++i;
+
532 if (i >= count || !str[i]) goto error;
+
533 }
+
534
+
535 if (radix == 16) {
+
536 // On hexadecimal, allow leading 0x.
+
537 if (str[i] == '0' && i + 1 < count && (str[i + 1] == 'x' || str[i + 1] == 'X')) {
+
538 i += 2;
+
539 if (i >= count || !str[i]) goto error;
+
540 }
+
541 }
+
542 else if (!radix) {
+
543 // Autodetect radix.
+
544 if (str[i] == '0') {
+
545 ++i;
+
546 if (i >= count || !str[i]) goto error;
+
547 if (str[i] == 'x' || str[i] == 'X') {
+
548 radix = 16;
+
549 ++i;
+
550 if (i >= count || !str[i]) goto error;
+
551 }
+
552 else
+
553 radix = 8;
+
554 }
+
555 else
+
556 radix = 10;
+
557 }
+
558
+
559 // We have the radix.
+
560 max_ui_pre1 = max_ui / (T_bin)radix;
+
561 max_ui_pre2 = max_ui % (T_bin)radix;
+
562 for (;;) {
+
563 if ('0' <= str[i] && str[i] <= '9')
+
564 digit = (T_bin)str[i] - '0';
+
565 else if ('A' <= str[i] && str[i] <= 'Z')
+
566 digit = (T_bin)str[i] - 'A' + '\x0a';
+
567 else if ('a' <= str[i] && str[i] <= 'z')
+
568 digit = (T_bin)str[i] - 'a' + '\x0a';
+
569 else
+
570 goto error;
+
571 if (digit >= (T_bin)radix)
+
572 goto error;
+
573
+
574 if (value < max_ui_pre1 || // Multiplication nor addition will not overflow.
+
575 value == max_ui_pre1 && digit <= max_ui_pre2) // Small digits will not overflow.
+
576 value = value * (T_bin)radix + digit;
+
577 else {
+
578 // Overflow!
+
579 flags |= 0x02;
+
580 }
+
581
+
582 ++i;
+
583 if (i >= count || !str[i])
+
584 goto error;
+
585 }
+
586
+
587 error:
+
588 if (end) *end = i;
+
589 return value;
+
590 }
+
592
+
603 template <class T, class T_bin>
+
604 T_bin strtoint(
+
605 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
606 _Out_opt_ size_t* end,
+
607 _In_ int radix)
+
608 {
+
609 uint8_t flags;
+
610 T_bin value;
+
611
+
612 switch (sizeof(T_bin)) {
+
613 case 1:
+
614 value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags);
+
615 if ((flags & 0x01) && (value & 0x80)) {
+
616 // Sign bit is 1 => overflow.
+
617 flags |= 0x02;
+
618 }
+
619 return (flags & 0x02) ?
+
620 (flags & 0x01) ? (T_bin)0x80 : (T_bin)0x7f :
+
621 (flags & 0x01) ? -value : value;
+
622
+
623 case 2:
+
624 value = (T_bin)strtoint<T, T_U2>(str, count, end, radix, flags);
+
625 if ((flags & 0x01) && (value & 0x8000)) {
+
626 // Sign bit is 1 => overflow.
+
627 flags |= 0x02;
+
628 }
+
629 return (flags & 0x02) ?
+
630 (flags & 0x01) ? (T_bin)0x8000 : (T_bin)0x7fff :
+
631 (flags & 0x01) ? -value : value;
+
632
+
633 case 4:
+
634 value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags);
+
635 if ((flags & 0x01) && (value & 0x80000000)) {
+
636 // Sign bit is 1 => overflow.
+
637 flags |= 0x02;
+
638 }
+
639 return (flags & 0x02) ?
+
640 (flags & 0x01) ? (T_bin)0x80000000 : (T_bin)0x7fffffff :
+
641 (flags & 0x01) ? -value : value;
+
642
+
643 case 8:
+
644 value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags);
+
645 if ((flags & 0x01) && (value & 0x8000000000000000)) {
+
646 // Sign bit is 1 => overflow.
+
647 flags |= 0x02;
+
648 }
+
649 return (flags & 0x02) ?
+
650 (flags & 0x01) ? (T_bin)0x8000000000000000 : (T_bin)0x7fffffffffffffff :
+
651 (flags & 0x01) ? -value : value;
+
652
+
653 default:
+
654 throw std::invalid_argument("Unsupported bit length");
+
655 }
+
656 }
+
657
+
668 template <class T, class T_bin>
+
669 inline T_bin strtouint(
+
670 _In_reads_or_z_opt_(count) const T* str,
+
671 _In_ size_t count,
+
672 _Out_opt_ size_t* end,
+
673 _In_ int radix)
+
674 {
+
675 uint8_t flags;
+
676 T_bin value;
+
677
+
678 switch (sizeof(T_bin)) {
+
679 case 1: value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags); break;
+
680 case 2: value = (T_bin)strtoint<T, uint16_t>(str, count, end, radix, flags); break;
+
681 case 4: value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags); break;
+
682 case 8: value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags); break;
+
683 default: throw std::invalid_argument("Unsupported bit length");
+
684 }
+
685
+
686 return (flags & 0x02) ?
+
687 (flags & 0x01) ? (T_bin)0 : (T_bin)-1 :
+
688 (flags & 0x01) ? ~value : value;
+
689 }
+
690
+
701 template <class T>
+
702 inline int32_t strto32(
+
703 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
704 _Out_opt_ size_t* end,
+
705 _In_ int radix)
+
706 {
+
707 return strtoint<T, int32_t>(str, count, end, radix);
+
708 }
+
709
+
720 template <class T>
+
721 inline int64_t strto64(
+
722 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
723 _Out_opt_ size_t* end,
+
724 _In_ int radix)
+
725 {
+
726 return strtoint<T, int64_t>(str, count, end, radix);
+
727 }
+
728
+
740 template <class T>
+
741 inline intptr_t strtoi(
+
742 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
743 _Out_opt_ size_t* end,
+
744 _In_ int radix)
+
745 {
+
746#if defined(_WIN64) || defined(__LP64__)
+
747 return (intptr_t)strto64(str, count, end, radix);
+
748#else
+
749 return (intptr_t)strto32(str, count, end, radix);
+
750#endif
+
751 }
+
752
+
763 template <class T>
+
764 inline uint32_t strtou32(
+
765 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
766 _Out_opt_ size_t* end,
+
767 _In_ int radix)
+
768 {
+
769 return strtouint<T, uint32_t>(str, count, end, radix);
+
770 }
+
771
+
782 template <class T>
+
783 inline uint64_t strtou64(
+
784 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
785 _Out_opt_ size_t* end,
+
786 _In_ int radix)
+
787 {
+
788 return strtouint<T, uint64_t>(str, count, end, radix);
+
789 }
+
790
+
802 template <class T>
+
803 inline size_t strtoui(
+
804 _In_reads_or_z_opt_(count) const T* str, _In_ size_t count,
+
805 _Out_opt_ size_t* end,
+
806 _In_ int radix)
+
807 {
+
808#if defined(_WIN64) || defined(__LP64__)
+
809 return (size_t)strtou64(str, count, end, radix);
+
810#else
+
811 return (size_t)strtou32(str, count, end, radix);
+
812#endif
+
813 }
+
814
+
816 inline int vsnprintf(_Out_z_cap_(capacity) char *str, _In_ size_t capacity, _In_z_ _Printf_format_string_params_(2) const char *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
817 {
+
818 int r;
+
819#ifdef _WIN32
+
820 // Don't use _vsnprintf_s(). It terminates the string even if we want to print to the edge of the buffer.
+
821#pragma warning(suppress: 4996)
+
822 r = _vsnprintf_l(str, capacity, format, locale, arg);
+
823#else
+
824 r = vsnprintf(str, capacity, format, arg);
+
825#endif
+
826 if (r == -1 && strnlen(str, capacity) == capacity) {
+
827 // Buffer overrun. Estimate buffer size for the next iteration.
+
828 capacity += std::max<size_t>(capacity / 8, 0x80);
+
829 if (capacity > INT_MAX)
+
830 throw std::invalid_argument("string too big");
+
831 return (int)capacity;
+
832 }
+
833 return r;
+
834 }
+
835
+
836 inline int vsnprintf(_Out_z_cap_(capacity) wchar_t *str, _In_ size_t capacity, _In_z_ _Printf_format_string_params_(2) const wchar_t *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
837 {
+
838 int r;
+
839
+
840#ifdef _WIN32
+
841 // Don't use _vsnwprintf_s(). It terminates the string even if we want to print to the edge of the buffer.
+
842#pragma warning(suppress: 4996)
+
843 r = _vsnwprintf_l(str, capacity, format, locale, arg);
+
844#else
+
845 r = vswprintf(str, capacity, format, arg);
+
846#endif
+
847 if (r == -1 && strnlen(str, capacity) == capacity) {
+
848 // Buffer overrun. Estimate buffer size for the next iteration.
+
849 capacity += std::max<size_t>(capacity / 8, 0x80);
+
850 if (capacity > INT_MAX)
+
851 throw std::invalid_argument("string too big");
+
852 return (int)capacity;
+
853 }
+
854 return r;
+
855 }
+
857
+
866 template<class _Elem, class _Traits, class _Ax>
+
867 inline void vappendf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
868 {
+
869 _Elem buf[1024/sizeof(_Elem)];
+
870
+
871 // Try with stack buffer first.
+
872 int count = vsnprintf(buf, _countof(buf) - 1, format, locale, arg);
+
873 if (count >= 0) {
+
874 // Copy from stack.
+
875 str.append(buf, count);
+
876 } else {
+
877 for (size_t capacity = 2*1024/sizeof(_Elem);; capacity *= 2) {
+
878 // Allocate on heap and retry.
+
879 auto buf_dyn = std::make_unique<_Elem[]>(capacity);
+
880 count = vsnprintf(buf_dyn.get(), capacity - 1, format, locale, arg);
+
881 if (count >= 0) {
+
882 str.append(buf_dyn.get(), count);
+
883 break;
+
884 }
+
885 }
+
886 }
+
887 }
+
888
+
896 template<class _Elem, class _Traits, class _Ax>
+
897 inline void appendf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, ...)
+
898 {
+
899 va_list arg;
+
900 va_start(arg, locale);
+
901 vappendf(str, format, locale, arg);
+
902 va_end(arg);
+
903 }
+
904
+
913 template<class _Elem, class _Traits, class _Ax>
+
914 inline void vsprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
915 {
+
916 str.clear();
+
917 vappendf(str, format, locale, arg);
+
918 }
+
919
+
927 template<class _Elem, class _Traits, class _Ax>
+
928 inline void sprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, ...)
+
929 {
+
930 va_list arg;
+
931 va_start(arg, locale);
+
932 vsprintf(str, format, locale, arg);
+
933 va_end(arg);
+
934 }
+
935
+
945 template<class _Elem, class _Traits = std::char_traits<_Elem>, class _Ax = std::allocator<_Elem>>
+
946 inline std::basic_string<_Elem, _Traits, _Ax> vsprintf(_In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, _In_ va_list arg)
+
947 {
+
948 std::basic_string<_Elem, _Traits, _Ax> str;
+
949 vappendf(str, format, locale, arg);
+
950 return str;
+
951 }
+
952
+
961 template<class _Elem, class _Traits = std::char_traits<_Elem>, class _Ax = std::allocator<_Elem>>
+
962 inline std::basic_string<_Elem, _Traits, _Ax> sprintf(_In_z_ _Printf_format_string_params_(2) const _Elem *format, _In_opt_ locale_t locale, ...)
+
963 {
+
964 va_list arg;
+
965 va_start(arg, locale);
+
966 auto str = vsprintf(format, locale, arg);
+
967 va_end(arg);
+
968 return str;
+
969 }
+
970}
diff --git a/structstdex_1_1chrono_1_1aosn__clock-members.html b/structstdex_1_1chrono_1_1aosn__clock-members.html index 7ce8bfc1f..805c548cd 100644 --- a/structstdex_1_1chrono_1_1aosn__clock-members.html +++ b/structstdex_1_1chrono_1_1aosn__clock-members.html @@ -105,7 +105,7 @@ $(function() { diff --git a/structstdex_1_1chrono_1_1aosn__clock.html b/structstdex_1_1chrono_1_1aosn__clock.html index 5a64b8447..c0ff57044 100644 --- a/structstdex_1_1chrono_1_1aosn__clock.html +++ b/structstdex_1_1chrono_1_1aosn__clock.html @@ -165,7 +165,7 @@ static constexpr rep week< diff --git a/structstdex_1_1getter-members.html b/structstdex_1_1getter-members.html index 07c551b88..f9941f0c2 100644 --- a/structstdex_1_1getter-members.html +++ b/structstdex_1_1getter-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/structstdex_1_1getter.html b/structstdex_1_1getter.html index a06637e27..1c3b358c6 100644 --- a/structstdex_1_1getter.html +++ b/structstdex_1_1getter.html @@ -109,7 +109,7 @@ struct stdex::getter< _Type, _Class >

Helper template to allow acc

diff --git a/structstdex_1_1interval-members.html b/structstdex_1_1interval-members.html index 5c77e19ee..1c8db682a 100644 --- a/structstdex_1_1interval-members.html +++ b/structstdex_1_1interval-members.html @@ -93,7 +93,7 @@ $(function() { diff --git a/structstdex_1_1interval.html b/structstdex_1_1interval.html index baaec01ce..31820bdae 100644 --- a/structstdex_1_1interval.html +++ b/structstdex_1_1interval.html @@ -384,7 +384,7 @@ template<class T > diff --git a/structstdex_1_1mapping-members.html b/structstdex_1_1mapping-members.html index 87d6299b6..e081a1886 100644 --- a/structstdex_1_1mapping-members.html +++ b/structstdex_1_1mapping-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/structstdex_1_1mapping.html b/structstdex_1_1mapping.html index 409576393..7980decf9 100644 --- a/structstdex_1_1mapping.html +++ b/structstdex_1_1mapping.html @@ -283,7 +283,7 @@ template<class T > diff --git a/structstdex_1_1no__delete-members.html b/structstdex_1_1no__delete-members.html index 5c44242b8..ca9f998c1 100644 --- a/structstdex_1_1no__delete-members.html +++ b/structstdex_1_1no__delete-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/structstdex_1_1no__delete.html b/structstdex_1_1no__delete.html index 7d7bff16e..fb7956423 100644 --- a/structstdex_1_1no__delete.html +++ b/structstdex_1_1no__delete.html @@ -105,7 +105,7 @@ struct stdex::no_delete< T >

Noop deleter.

diff --git a/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html b/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html index 91b58f76d..556be3c79 100644 --- a/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html +++ b/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/structstdex_1_1no__delete_3_01_t_0f_0e_4.html b/structstdex_1_1no__delete_3_01_t_0f_0e_4.html index bba09fcca..343b57139 100644 --- a/structstdex_1_1no__delete_3_01_t_0f_0e_4.html +++ b/structstdex_1_1no__delete_3_01_t_0f_0e_4.html @@ -106,7 +106,7 @@ struct stdex::no_delete< T[]>

Noop array deleter.

diff --git a/structstdex_1_1parser_1_1http__factor__more-members.html b/structstdex_1_1parser_1_1http__factor__more-members.html index 02786da4b..8db648a17 100644 --- a/structstdex_1_1parser_1_1http__factor__more-members.html +++ b/structstdex_1_1parser_1_1http__factor__more-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/structstdex_1_1parser_1_1http__factor__more.html b/structstdex_1_1parser_1_1http__factor__more.html index 8aa4b7c09..a67dc8c21 100644 --- a/structstdex_1_1parser_1_1http__factor__more.html +++ b/structstdex_1_1parser_1_1http__factor__more.html @@ -93,7 +93,7 @@ constexpr bool operator()< diff --git a/structstdex_1_1robber-members.html b/structstdex_1_1robber-members.html index e9fbd18b1..9f1de9703 100644 --- a/structstdex_1_1robber-members.html +++ b/structstdex_1_1robber-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/structstdex_1_1robber.html b/structstdex_1_1robber.html index 87574045c..75af99bfa 100644 --- a/structstdex_1_1robber.html +++ b/structstdex_1_1robber.html @@ -102,7 +102,7 @@ struct stdex::robber< _Tag, _Member >

Helper template to allow acc

diff --git a/unicode_8hpp_source.html b/unicode_8hpp_source.html index 33c3951f8..3f876440e 100644 --- a/unicode_8hpp_source.html +++ b/unicode_8hpp_source.html @@ -208,7 +208,7 @@ $(function() { diff --git a/vector__queue_8hpp_source.html b/vector__queue_8hpp_source.html index bc25292be..4a5eee420 100644 --- a/vector__queue_8hpp_source.html +++ b/vector__queue_8hpp_source.html @@ -386,7 +386,7 @@ $(function() {