40 lines
3.1 KiB
HTML
40 lines
3.1 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>零开销原则</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_language_Zero-overhead_principle skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading">零开销原则</h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-language.html">language</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p><i>零开销原则</i>是 C++ 设计原则,所说的是:</p>
|
|
<ol>
|
|
<li>你无需为你所不用的付出。</li>
|
|
<li>你所用的正与你所能合理手写的效率相同。</li>
|
|
</ol>
|
|
<p>总而言之,这表示不应该添加某特性到 C++ ,如果该特性引发的开销,不论在时间还是空间方面,会大于程序员自己实现该特性产生的开销。</p>
|
|
<p>语言中仅有的两个不遵循零开销原则的特性是<a href="cpp-language-typeid.html">运行时类型鉴别</a>与<a href="cpp-language-exceptions.html">异常</a>,从而这是大多数编译器包含关闭它们的开关的原因。</p>
|
|
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">引用</span></h3>
|
|
<ul>
|
|
<li><a rel="nofollow" class="external text" href="http://www.stroustrup.com/ETAPS-corrected-draft.pdf">C++ 的基础 - Bjarne Stroustrup</a></li>
|
|
</ul>
|
|
<ul>
|
|
<li><a rel="nofollow" class="external text" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1947r0.pdf">C++ 异常与代替品 - Bjarne Stroustrup</a></li>
|
|
</ul>
|
|
<ul>
|
|
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=ARYP83yNAWk">反碎片化 C++ :使异常与 RTTI 更廉价且可用 - Herb Sutter</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|