This commit is contained in:
wendajiang 2022-09-05 08:25:06 +00:00
parent d80b7bd969
commit 147561b784
4 changed files with 4 additions and 4 deletions

View File

@ -136,7 +136,7 @@
<div id="content" class="content">
<main>
<h2 id="条款二十一优先考虑使用stdmake_unique和stdmake_shared而非new"><a class="header" href="#条款二十一优先考虑使用stdmake_unique和stdmake_shared而非new">条款二十一:优先考虑使用<code>std::make_unique</code><code>std::make_shared</code>而非<code>new</code></a></h2>
<h2 id="条款二十一优先考虑使用stdmake_unique和stdmake_shared而非直接使用new"><a class="header" href="#条款二十一优先考虑使用stdmake_unique和stdmake_shared而非直接使用new">条款二十一:优先考虑使用<code>std::make_unique</code><code>std::make_shared</code>而非直接使用<code>new</code></a></h2>
<p><strong>Item 21: Prefer <code>std::make_unique</code> and <code>std::make_shared</code> to direct use of <code>new</code></strong></p>
<p>让我们先对<code>std::make_unique</code><code>std::make_shared</code>做个铺垫。<code>std::make_shared</code>是C++11标准的一部分但很可惜的是<code>std::make_unique</code>不是。它从C++14开始加入标准库。如果你在使用C++11不用担心一个基础版本的<code>std::make_unique</code>是很容易自己写出的,如下:</p>
<pre><code class="language-cpp">template&lt;typename T, typename... Ts&gt;

View File

@ -2839,7 +2839,7 @@ auto spw2 = wpw.lock(); //同上但是使用auto
<li><code>std::weak_ptr</code>替代可能会悬空的<code>std::shared_ptr</code></li>
<li><code>std::weak_ptr</code>的潜在使用场景包括:缓存、观察者列表、打破<code>std::shared_ptr</code>环状结构。</li>
</ul>
<div style="break-before: page; page-break-before: always;"></div><h2 id="条款二十一优先考虑使用stdmake_unique和stdmake_shared而非new"><a class="header" href="#条款二十一优先考虑使用stdmake_unique和stdmake_shared而非new">条款二十一:优先考虑使用<code>std::make_unique</code><code>std::make_shared</code>而非<code>new</code></a></h2>
<div style="break-before: page; page-break-before: always;"></div><h2 id="条款二十一优先考虑使用stdmake_unique和stdmake_shared而非直接使用new"><a class="header" href="#条款二十一优先考虑使用stdmake_unique和stdmake_shared而非直接使用new">条款二十一:优先考虑使用<code>std::make_unique</code><code>std::make_shared</code>而非直接使用<code>new</code></a></h2>
<p><strong>Item 21: Prefer <code>std::make_unique</code> and <code>std::make_shared</code> to direct use of <code>new</code></strong></p>
<p>让我们先对<code>std::make_unique</code><code>std::make_shared</code>做个铺垫。<code>std::make_shared</code>是C++11标准的一部分但很可惜的是<code>std::make_unique</code>不是。它从C++14开始加入标准库。如果你在使用C++11不用担心一个基础版本的<code>std::make_unique</code>是很容易自己写出的,如下:</p>
<pre><code class="language-cpp">template&lt;typename T, typename... Ts&gt;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long