512 lines
39 KiB
HTML
512 lines
39 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>C++ 具名要求:字符特征 (CharTraits)</title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_named_req_CharTraits skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">C++ 具名要求:</span><span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span></h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-named_req.html">named req</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p><strong class="selflink"><span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span></strong> 是特征类,它抽象给定字符类型的基本字符和字符串操作。大多数标准库字符串类和输入/输出类要求伴随对应字符模板类型形参的<span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span> 模板类型。</p>
|
|
<h3><span class="mw-headline" id=".E8.A6.81.E6.B1.82">要求</span></h3>
|
|
<p><span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span> 上的下列操作均不可抛出异常。</p>
|
|
<p>给定</p>
|
|
<ul>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">CharT</span></span> ,字符类型</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">X</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">CharT</span></span> 的<span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span> 类型</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">c, d</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">CharT</span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">p, q</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> CharT<span class="sy2">*</span></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">s</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">CharT<span class="sy2">*</span></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">n, i, j</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">e, f</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">int_type</span></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">pos</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">pos_type</span></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">state</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">state_type</span></span></span> 类型值</li>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">r</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">CharT</span></span> 类型左值</li>
|
|
</ul>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<th>表达式</th>
|
|
<th>返回类型</th>
|
|
<th>语义</th>
|
|
<th>复杂度</th>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">CharT</span></span></td>
|
|
<td>用于指代字符类型</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">int_type</span></span></span></td>
|
|
<td></td>
|
|
<td>能保有 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span></span></span> 的所有合法值加 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span></span></span> 的类型</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">off_type</span></span></span></td>
|
|
<td></td>
|
|
<td>以 <span class="t-c"><span class="mw-geshi cpp source-cpp">X</span></span> 为输入/输出类中的特性模板形参时,若此类型非 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-streamoff.html"><span class="kw1803">std::<span class="me2">streamoff</span></span></a></span></span> 则引起实现定义行为。</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">pos_type</span></span></span></td>
|
|
<td></td>
|
|
<td>
|
|
<ul>
|
|
<li>输入/输出类中的函数返回此类型,以 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">pos_type</span><span class="br0">(</span>X<span class="sy4">::</span><span class="me2">off_type</span><span class="br0">(</span><span class="sy2">-</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span></span></span> 为提示错误的非法值</li>
|
|
<li>以此类型的非法值为任何接收此类型值的 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-basic_istream.html"><span class="kw1727">std::<span class="me2">istream</span></span></a></span></span> 、 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-basic_ostream.html"><span class="kw1729">std::<span class="me2">ostream</span></span></a></span></span> 或 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-basic_streambuf.html"><span class="kw1724">std::<span class="me2">streambuf</span></span></a></span></span> 成员的实参是未定义行为</li>
|
|
<li>在以 <span class="t-c"><span class="mw-geshi cpp source-cpp">X</span></span> 为输入/输出类中的特性模板形参时,若此类型非 <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-io-fpos.html"><span class="kw1806">std::<span class="me2">streampos</span></span></a></span></span> 则引起实现定义行为</li>
|
|
</ul>
|
|
</td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">state_type</span></span></span></td>
|
|
<td></td>
|
|
<td><a href="cpp-named_req-Destructible.html"><span style="font-style:italic">可析构</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(Destructible)</span></a> 、<a href="cpp-named_req-CopyAssignable.html"><span style="font-style:italic">可复制赋值</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyAssignable)</span></a> 、<a href="cpp-named_req-CopyConstructible.html"><span style="font-style:italic">可复制构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CopyConstructible)</span></a> 、<a href="cpp-named_req-DefaultConstructible.html"><span style="font-style:italic">可默认构造</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(DefaultConstructible)</span></a></td>
|
|
<td>编译时</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>c,d<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span></td>
|
|
<td>返回:是否把 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 当做等于 <span class="t-c"><span class="mw-geshi cpp source-cpp">d</span></span></td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">lt</span><span class="br0">(</span>c,d<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span></td>
|
|
<td>返回:是否把 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 当做小于 <span class="t-c"><span class="mw-geshi cpp source-cpp">d</span></span></td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">compare</span><span class="br0">(</span>p,q,n<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">int</span></span></span></td>
|
|
<td>返回:
|
|
<ul>
|
|
<li>0 ,若对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,n<span class="br0">)</span></span></span> 中的每个 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>p<span class="br0">[</span>i<span class="br0">]</span>, q<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span></span></span> 为 true</li>
|
|
<li>否则为负值,若
|
|
<ul>
|
|
<li>对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,n<span class="br0">)</span></span></span> 中的某个 <span class="t-c"><span class="mw-geshi cpp source-cpp">j</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">lt</span><span class="br0">(</span>p<span class="br0">[</span>j<span class="br0">]</span>, q<span class="br0">[</span>j<span class="br0">]</span><span class="br0">)</span></span></span> 为 true ,且</li>
|
|
<li>对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,j<span class="br0">)</span></span></span> 中的每个 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>p<span class="br0">[</span>i<span class="br0">]</span>, q<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span></span></span> 为 true</li>
|
|
</ul>
|
|
</li>
|
|
<li>否则为正值</li>
|
|
</ul>
|
|
</td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">length</span><span class="br0">(</span>p<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a></span></span></td>
|
|
<td>返回:使得 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>p<span class="br0">[</span>i<span class="br0">]</span>, CharT<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> 为 true 的最小 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span></td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">find</span><span class="br0">(</span>p,n,c<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">const</span> X<span class="sy4">::</span><span class="me2">char_type</span><span class="sy2">*</span></span></span></td>
|
|
<td>返回:
|
|
<ul>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span>p, p<span class="sy2">+</span>n<span class="br0">)</span></span></span> 中的最小 <span class="t-c"><span class="mw-geshi cpp source-cpp">q</span></span> ,使得 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span><span class="sy2">*</span>q, c<span class="br0">)</span></span></span> 为 true</li>
|
|
<li>否则为零</li>
|
|
</ul>
|
|
</td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">move</span><span class="br0">(</span>s,p,n<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span><span class="sy2">*</span></span></span></td>
|
|
<td>
|
|
<ul>
|
|
<li>对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,n<span class="br0">)</span></span></span> 中的每个 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span> 进行 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">assign</span><span class="br0">(</span>s<span class="br0">[</span>i<span class="br0">]</span>, p<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span></span></span></li>
|
|
<li>即使范围 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span>p,p<span class="sy2">+</span>n<span class="br0">)</span></span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span>s,s<span class="sy2">+</span>n<span class="br0">)</span></span></span> 重叠也能正确复制</li>
|
|
<li>返回: <span class="t-c"><span class="mw-geshi cpp source-cpp">s</span></span></li>
|
|
</ul>
|
|
</td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span>s,p,n<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span><span class="sy2">*</span></span></span></td>
|
|
<td>
|
|
<ul>
|
|
<li>要求: <span class="t-c"><span class="mw-geshi cpp source-cpp">p</span></span> 不在 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span>s,s<span class="sy2">+</span>n<span class="br0">)</span></span></span> 中</li>
|
|
<li>返回: <span class="t-c"><span class="mw-geshi cpp source-cpp">s</span></span></li>
|
|
<li>对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,n<span class="br0">)</span></span></span> 中每个 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span> 进行 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">assign</span><span class="br0">(</span>s<span class="br0">[</span>i<span class="br0">]</span>, p<span class="br0">[</span>i<span class="br0">]</span><span class="br0">)</span></span></span></li>
|
|
</ul>
|
|
</td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">assign</span><span class="br0">(</span>r,d<span class="br0">)</span></span></span></td>
|
|
<td>(不使用)</td>
|
|
<td>赋值 <span class="t-c"><span class="mw-geshi cpp source-cpp">r <span class="sy1">=</span> d</span></span></td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">assign</span><span class="br0">(</span>s,n,c<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span><span class="sy2">*</span></span></span></td>
|
|
<td>
|
|
<ul>
|
|
<li>对 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">[</span><span class="nu0">0</span>,n<span class="br0">)</span></span></span> 中每个 <span class="t-c"><span class="mw-geshi cpp source-cpp">i</span></span> 进行 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">assign</span><span class="br0">(</span>s<span class="br0">[</span>i<span class="br0">]</span>, c<span class="br0">)</span></span></span> 。</li>
|
|
<li>返回: <span class="t-c"><span class="mw-geshi cpp source-cpp">s</span></span></li>
|
|
</ul>
|
|
</td>
|
|
<td>线性</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">not_eof</span><span class="br0">(</span>e<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">int_type</span></span></span></td>
|
|
<td>返回:
|
|
<ul>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span> ,若 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>e, X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> 为 false</li>
|
|
<li>否则为使得 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>f, X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> 为 false 的值 <span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span></li>
|
|
</ul>
|
|
</td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">to_char_type</span><span class="br0">(</span>e<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">char_type</span></span></span></td>
|
|
<td>返回:
|
|
<ul>
|
|
<li>若 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>e, X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>c<span class="br0">)</span><span class="br0">)</span></span></span> 对某个 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 为 true 则为 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span></li>
|
|
<li>否则为某未指定值</li>
|
|
</ul>
|
|
</td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>c<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">int_type</span></span></span></td>
|
|
<td>返回: <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">to_char_type</span></span></span> 和 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span></span></span> 的定义所制约的某值 <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span></td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>e,f<span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">bool</span></span></span></td>
|
|
<td>
|
|
<ul>
|
|
<li>对于所有 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 和 <span class="t-c"><span class="mw-geshi cpp source-cpp">d</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>c,d<span class="br0">)</span></span></span> 等于 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>c<span class="br0">)</span>, X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>d<span class="br0">)</span><span class="br0">)</span></span></span></li>
|
|
<li>返回:
|
|
<ul>
|
|
<li><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq</span><span class="br0">(</span>c,d<span class="br0">)</span></span></span> ,若对于某 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 和 <span class="t-c"><span class="mw-geshi cpp source-cpp">d</span></span> , <span class="t-c"><span class="mw-geshi cpp source-cpp">e <span class="sy1">==</span> X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>c<span class="br0">)</span></span></span> 且 <span class="t-c"><span class="mw-geshi cpp source-cpp">f <span class="sy1">==</span> X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>d<span class="br0">)</span></span></span></li>
|
|
<li>否则为 true ,若 <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> 都是 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span></span></span> 的副本</li>
|
|
<li>否则为 false ,若 <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span> 与 <span class="t-c"><span class="mw-geshi cpp source-cpp">f</span></span> 之一为 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span></span></span> 的副本而另一者不是</li>
|
|
<li>否则值未指定</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</td>
|
|
<td>常数</td>
|
|
</tr>
|
|
<tr>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eof</span><span class="br0">(</span><span class="br0">)</span></span></span></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">int_type</span></span></span></td>
|
|
<td>返回:使得 <span class="t-c"><span class="mw-geshi cpp source-cpp">X<span class="sy4">::</span><span class="me2">eq_int_type</span><span class="br0">(</span>e, X<span class="sy4">::</span><span class="me2">to_int_type</span><span class="br0">(</span>c<span class="br0">)</span><span class="br0">)</span></span></span> 对于所有值 <span class="t-c"><span class="mw-geshi cpp source-cpp">c</span></span> 为 false 的值 <span class="t-c"><span class="mw-geshi cpp source-cpp">e</span></span></td>
|
|
<td>常数</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.A0.87.E5.87.86.E5.BA.93">标准库</span></h3>
|
|
<p>下列标准库类模板要求<span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span> 作为模板类型形参:</p>
|
|
<table class="t-dsc-begin">
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E5.AD.97.E7.AC.A6.E4.B8.B2">字符串</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-string-basic_string.html"><span class="t-lines"><span>basic_string</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>存储并操作字符序列<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-string-basic_string_view.html"><span class="t-lines"><span>basic_string_view</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>只读的字符串视图<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.B5.81">流</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ios.html"><span class="t-lines"><span>basic_ios</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>管理任意流缓冲<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_istream.html"><span class="t-lines"><span>basic_istream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>包装给定的抽象设备(<span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span>)<br />
|
|
并提供高层输入接口<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ifstream.html"><span class="t-lines"><span>basic_ifstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层文件流输入操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_istringstream.html"><span class="t-lines"><span>basic_istringstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层字符串流输入操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ispanstream.html"><span class="t-lines"><span>basic_ispanstream</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现固定字符缓冲区输入操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ostream.html"><span class="t-lines"><span>basic_ostream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>包装给定的抽象设备(<span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span>)<br />
|
|
并提供高层输出接口<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ofstream.html"><span class="t-lines"><span>basic_ofstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层文件流输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ostringstream.html"><span class="t-lines"><span>basic_ostringstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层字符串流输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_osyncstream.html"><span class="t-lines"><span>basic_osyncstream</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>同步输出流的包装<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_ospanstream.html"><span class="t-lines"><span>basic_ospanstream</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现固定字符缓冲区输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_iostream.html"><span class="t-lines"><span>basic_iostream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>包装给定的抽象设备(<span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span>)<br />
|
|
并提供高层输入/输出接口<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_fstream.html"><span class="t-lines"><span>basic_fstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层文件流输入/输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_stringstream.html"><span class="t-lines"><span>basic_stringstream</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现高层字符串流输入/输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_spanstream.html"><span class="t-lines"><span>basic_spanstream</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现固定字符缓冲区输入/输出操作<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.B5.81.E8.BF.AD.E4.BB.A3.E5.99.A8">流迭代器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-iterator-istream_iterator.html"><span class="t-lines"><span>istream_iterator</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>从 <span class="t-lc"><a href="cpp-io-basic_istream.html">std::basic_istream</a></span> 读取的输入迭代器<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-iterator-ostream_iterator.html"><span class="t-lines"><span>ostream_iterator</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>写入 <span class="t-lc"><a href="cpp-io-basic_ostream.html">std::basic_ostream</a></span> 的输出迭代器<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.B5.81.E7.BC.93.E5.86.B2">流缓冲</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_streambuf.html"><span class="t-lines"><span>basic_streambuf</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>抽象原生设备<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_filebuf.html"><span class="t-lines"><span>basic_filebuf</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>抽象原生文件设备<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_stringbuf.html"><span class="t-lines"><span>basic_stringbuf</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>实现原生字符串设备<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_syncbuf.html"><span class="t-lines"><span>basic_syncbuf</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>同步输出设备的包装<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-io-basic_spanbuf.html"><span class="t-lines"><span>basic_spanbuf</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>实现原始固定字符缓冲区设备<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<h5><span class="mw-headline" id=".E6.B5.81.E7.BC.93.E5.86.B2.E8.BF.AD.E4.BB.A3.E5.99.A8">流缓冲迭代器</span></h5>
|
|
</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-iterator-istreambuf_iterator.html"><span class="t-lines"><span>istreambuf_iterator</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>从 <span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span> 读取的输入迭代器<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-iterator-ostreambuf_iterator.html"><span class="t-lines"><span>ostreambuf_iterator</span></span></a></div>
|
|
</div>
|
|
</td>
|
|
<td>写入 <span class="t-lc"><a href="cpp-io-basic_streambuf.html">std::basic_streambuf</a></span> 的输出迭代器<br />
|
|
<span class="t-mark">(类模板)</span></td>
|
|
</tr>
|
|
</table>
|
|
<p><br />
|
|
下列标准库类满足<span style="font-style:italic">字符特征</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(CharTraits)</span> :</p>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1"><></span> <span class="kw1">class</span> char_traits<span class="sy1"><</span><span class="kw4">char</span><span class="sy1">></span><span class="sy4">;</span><br /></span>
|
|
<p><span class="kw1">template</span><span class="sy1"><></span> <span class="kw1">class</span> char_traits<span class="sy1"><</span><span class="kw4">wchar_t</span><span class="sy1">></span><span class="sy4">;</span><br />
|
|
<span class="kw1">template</span><span class="sy1"><></span> <span class="kw1">class</span> char_traits<span class="sy1"><</span>char8_t<span class="sy1">></span><span class="sy4">;</span><br />
|
|
<span class="kw1">template</span><span class="sy1"><></span> <span class="kw1">class</span> char_traits<span class="sy1"><</span><span class="kw4">char16_t</span><span class="sy1">></span><span class="sy4">;</span><br /></p>
|
|
<span class="kw1">template</span><span class="sy1"><></span> <span class="kw1">class</span> char_traits<span class="sy1"><</span><span class="kw4">char32_t</span><span class="sy1">></span><span class="sy4">;</span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><br />
|
|
<br />
|
|
<span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<span class="t-mark-rev t-since-cxx11">(C++11 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|