Files
hustoj/web/cppreference-zh/chmhelp/cpp-named_req-triviallycopyable.html
2025-08-01 12:57:54 +08:00

88 lines
9.3 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++ &#20855;&#21517;&#35201;&#27714;&#65306;&#21487;&#24179;&#20961;&#22797;&#21046; (TriviallyCopyable)</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_TriviallyCopyable 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++ &#20855;&#21517;&#35201;&#27714;&#65306;</span><span style="font-style:italic">&#21487;&#24179;&#20961;&#22797;&#21046;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TriviallyCopyable)</span></h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <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>&#27880;&#24847;&#65306;&#26631;&#20934;&#20013;&#24182;&#27809;&#26377;&#23450;&#20041;&#20855;&#26377;&#36825;&#20010;&#21517;&#23383;&#30340;&#20855;&#21517;&#35201;&#27714;&#12290;&#36825;&#26159;&#26680;&#24515;&#35821;&#35328;&#25152;&#23450;&#20041;&#30340;&#19968;&#31181;&#31867;&#22411;&#31867;&#21035;&#12290;&#23558;&#23427;&#20316;&#20026;&#20855;&#21517;&#35201;&#27714;&#21253;&#21547;&#20110;&#27492;&#21482;&#26159;&#20026;&#20102;&#20445;&#25345;&#19968;&#33268;&#24615;&#12290;</p>
<h3><span class="mw-headline" id=".E8.A6.81.E6.B1.82">&#35201;&#27714;</span></h3>
<p>&#19979;&#21015;&#31867;&#22411;&#32479;&#31216;&#20026;<i>&#21487;&#24179;&#20961;&#22797;&#21046;&#31867;&#22411;</i>&#65306;</p>
<ul>
<li>&#26631;&#37327;&#31867;&#22411;</li>
<li>&#21487;&#24179;&#20961;&#22797;&#21046;&#31867;&#31867;&#22411;&#65292;&#21363;&#28385;&#36275;&#19979;&#21015;&#26465;&#20214;&#30340;&#31867;&#31867;&#22411;&#65306;
<ul>
<li>&#33267;&#23569;&#19968;&#20010;&#22797;&#21046;&#26500;&#36896;&#20989;&#25968;&#12289;&#31227;&#21160;&#26500;&#36896;&#20989;&#25968;&#12289;&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;&#25110;&#31227;&#21160;&#36171;&#20540;&#36816;&#31639;&#31526;&#26159;&#21512;&#26684;&#30340;</li>
<li>&#27599;&#20010;<a href="cpp-language-copy_constructor.html#.E5.90.88.E6.A0.BC.E7.9A.84.E5.A4.8D.E5.88.B6.E6.9E.84.E9.80.A0.E5.87.BD.E6.95.B0">&#21512;&#26684;</a>&#30340;&#22797;&#21046;&#26500;&#36896;&#20989;&#25968;&#65288;&#33509;&#23384;&#22312;&#65289;&#22343;&#20026;<a href="cpp-language-copy_constructor.html#.E5.B9.B3.E5.87.A1.E5.A4.8D.E5.88.B6.E6.9E.84.E9.80.A0.E5.87.BD.E6.95.B0">&#24179;&#20961;</a>&#30340;</li>
<li>&#27599;&#20010;<a href="cpp-language-move_constructor.html#.E5.90.88.E6.A0.BC.E7.9A.84.E7.A7.BB.E5.8A.A8.E6.9E.84.E9.80.A0.E5.87.BD.E6.95.B0">&#21512;&#26684;</a>&#30340;&#31227;&#21160;&#26500;&#36896;&#20989;&#25968;&#65288;&#33509;&#23384;&#22312;&#65289;&#22343;&#20026;<a href="cpp-language-move_constructor.html#.E5.B9.B3.E5.87.A1.E7.A7.BB.E5.8A.A8.E6.9E.84.E9.80.A0.E5.87.BD.E6.95.B0">&#24179;&#20961;</a>&#30340;</li>
<li>&#27599;&#20010;<a href="cpp-language-copy_assignment.html#.E5.90.88.E6.A0.BC.E7.9A.84.E5.A4.8D.E5.88.B6.E8.B5.8B.E5.80.BC.E8.BF.90.E7.AE.97.E7.AC.A6">&#21512;&#26684;</a>&#30340;&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;&#65288;&#33509;&#23384;&#22312;&#65289;&#22343;&#20026;<a href="cpp-language-copy_assignment.html#.E5.B9.B3.E5.87.A1.E5.A4.8D.E5.88.B6.E8.B5.8B.E5.80.BC.E8.BF.90.E7.AE.97.E7.AC.A6">&#24179;&#20961;</a>&#30340;</li>
<li>&#27599;&#20010;<a href="cpp-language-move_assignment.html#.E5.90.88.E6.A0.BC.E7.9A.84.E7.A7.BB.E5.8A.A8.E8.B5.8B.E5.80.BC.E8.BF.90.E7.AE.97.E7.AC.A6">&#21512;&#26684;</a>&#30340;&#31227;&#21160;&#36171;&#20540;&#36816;&#31639;&#31526;&#65288;&#33509;&#23384;&#22312;&#65289;&#22343;&#20026;<a href="cpp-language-move_assignment.html#.E5.B9.B3.E5.87.A1.E7.A7.BB.E5.8A.A8.E8.B5.8B.E5.80.BC.E8.BF.90.E7.AE.97.E7.AC.A6">&#24179;&#20961;</a>&#30340;</li>
<li>&#25317;&#26377;&#19968;&#20010;<a href="cpp-language-destructor.html#.E5.B9.B3.E5.87.A1.E6.9E.90.E6.9E.84.E5.87.BD.E6.95.B0">&#24179;&#20961;</a>&#32780;&#26410;&#24323;&#32622;&#30340;&#26512;&#26500;&#20989;&#25968;</li>
</ul>
</li>
<li><span style="font-style:italic">&#21487;&#24179;&#20961;&#22797;&#21046;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TriviallyCopyable)</span> &#23545;&#35937;&#30340;&#25968;&#32452;</li>
</ul>
<p>&#36825;&#24847;&#21619;&#30528;&#21487;&#24179;&#20961;&#22797;&#21046;&#31867;&#27809;&#26377;<a href="cpp-language-virtual.html">&#34394;&#20989;&#25968;</a>&#25110;<a href="cpp-language-derived_class.html#.E8.99.9A.E5.9F.BA.E7.B1.BB">&#34394;&#22522;&#31867;</a>&#12290;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<table class="t-rev-begin">
<tr class="t-rev t-until-cxx20">
<td>
<p>&#19968;&#20010;&#22797;&#21046;&#26500;&#36896;&#20989;&#25968;&#12289;&#31227;&#21160;&#26500;&#36896;&#20989;&#25968;&#12289;&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;&#25110;&#31227;&#21160;&#36171;&#20540;&#36816;&#31639;&#31526;&#26159;&#21512;&#26684;&#30340;&#24403;&#19988;&#20165;&#24403;&#23427;&#19981;&#26159;&#24323;&#32622;&#30340;&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></td>
</tr>
</table>
<p>&#19968;&#33324;&#26469;&#35828;&#65292;&#23545;&#20110;&#20219;&#20309;&#21487;&#24179;&#20961;&#22797;&#21046;&#31867;&#22411; <code>T</code> &#21450; <code>T</code> &#23545;&#35937; <code>obj1</code> &#65292;&#33021;&#22797;&#21046; <code>obj1</code> &#30340;&#24213;&#23618;&#23383;&#33410;&#21040; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">char</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">unsigned</span> <span class="kw4">char</span></span></span> <span class="t-rev-inl t-since-cxx17"><span>&#25110; <a href="cpp-types-byte.html"><tt>std::byte</tt></a></span> <span><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></span></span> &#30340;&#25968;&#32452;&#20013;&#65292;&#25110;&#21040; <code>T</code> &#30340;&#21478;&#19968;&#19981;&#21516;&#23545;&#35937; <code>obj2</code> &#20013;&#12290; <code>obj1</code> &#19982; <code>obj2</code> &#22343;&#19981;&#21487;&#20026;&#28508;&#22312;&#37325;&#21472;&#30340;&#23376;&#23545;&#35937;&#12290;</p>
<p>&#33509;&#22797;&#21046; <code>obj1</code> &#30340;&#24213;&#23618;&#23383;&#33410;&#21040;&#36825;&#31181;&#25968;&#32452;&#20013;&#65292;&#28982;&#21518;&#22797;&#21046;&#32467;&#26524;&#20869;&#23481;&#22238; <code>obj1</code> &#20013;&#65292;&#21017; <code>obj1</code> &#23558;&#20445;&#26377;&#20854;&#21407;&#20540;&#12290;&#33509;&#22797;&#21046; <code>obj1</code> &#30340;&#24213;&#23618;&#23383;&#33410;&#21040; <code>obj2</code> &#20013;&#65292;&#21017; <code>obj2</code> &#23558;&#20445;&#26377; <code>obj1</code> &#30340;&#20540;&#12290;</p>
<p>&#24213;&#23618;&#23383;&#33410;&#33021;&#30001; <span class="t-lc"><a href="cpp-string-byte-memcpy.html">std::memcpy</a></span> &#25110; <span class="t-lc"><a href="cpp-string-byte-memmove.html">std::memmove</a></span> &#22797;&#21046;&#65292;&#21482;&#35201;&#19981;&#35775;&#38382;&#23384;&#27963;&#30340; volatile &#23545;&#35937;&#12290;</p>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue1734">CWG 1734</a></td>
<td>C++11</td>
<td>&#25317;&#26377;&#24323;&#32622;&#30340;&#38750;&#24179;&#20961;&#36171;&#20540;&#30340; C++03 POD &#19981;&#26159;&#24179;&#20961;&#30340;</td>
<td>&#20801;&#35768;&#24323;&#32622;&#30340;&#26500;&#36896;&#20989;&#25968;/&#36816;&#31639;&#31526;</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://wg21.cmeerw.net/cwg/issue2094">CWG 2094</a></td>
<td>C++11</td>
<td>volatile &#26631;&#37327;&#31867;&#22411;&#38750;&#21487;&#24179;&#20961;&#22797;&#21046;&#65288; CWG 1746 &#65289;</td>
<td>&#20351;&#20043;&#20026;&#21487;&#24179;&#20961;&#22797;&#21046;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-types-is_trivially_copyable.html"><span class="t-lines"><span>is_trivially_copyable</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#31867;&#22411;&#26159;&#21542;&#21487;&#24179;&#20961;&#22797;&#21046;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>