|
188 | 188 |
|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時(UTC): |
191 | | - <span itemprop="datePublished" content="2025-07-08T15:33:39"> |
192 | | - 2025年07月08日 15時33分39秒 |
| 191 | + <span itemprop="datePublished" content="2025-10-14T05:41:25"> |
| 192 | + 2025年10月14日 05時41分25秒 |
193 | 193 | </span> |
194 | 194 | <br/> |
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
|
215 | 215 | <div class="identifier-type">function template</div><div class="header"><memory></div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">allocate_shared</span><span class="cpp cpp11" title="C++11で追加">(C++11)</span></h1> |
216 | 216 | <div itemprop="articleBody"><p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">std</span> <span class="p">{</span> |
217 | 217 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Alloc</span><span class="p">,</span> <span class="n">class</span><span class="p">...</span> <span class="n">Args</span><span class="o">></span> |
218 | | - <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">Alloc</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="n">Args</span><span class="o">&&</span><span class="p">...</span> <span class="n">args</span><span class="p">);</span> <span class="c1">// (1)</span> |
| 218 | + <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 219 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">Alloc</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="n">Args</span><span class="o">&&</span><span class="p">...</span> <span class="n">args</span><span class="p">);</span> <span class="c1">// (1) C++11</span> |
| 220 | + <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Alloc</span><span class="p">,</span> <span class="n">class</span><span class="p">...</span> <span class="n">Args</span><span class="o">></span> |
| 221 | + <span class="k">constexpr</span> <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 222 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">Alloc</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="n">Args</span><span class="o">&&</span><span class="p">...</span> <span class="n">args</span><span class="p">);</span> <span class="c1">// (1) C++26</span> |
219 | 223 |
|
220 | 224 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
221 | | - <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">);</span> <span class="c1">// (2) C++20 から</span> |
| 225 | + <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 226 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">);</span> <span class="c1">// (2) C++20</span> |
| 227 | + <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
| 228 | + <span class="k">constexpr</span> <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 229 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">);</span> <span class="c1">// (2) C++26</span> |
222 | 230 |
|
223 | 231 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
224 | | - <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">);</span> <span class="c1">// (3) C++20 から</span> |
| 232 | + <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 233 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">);</span> <span class="c1">// (3) C++20</span> |
| 234 | + <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
| 235 | + <span class="k">constexpr</span> <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 236 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">);</span> <span class="c1">// (3) C++26</span> |
225 | 237 |
|
226 | 238 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
227 | | - <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">,</span> |
228 | | - <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (4) C++20 から</span> |
| 239 | + <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 240 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">,</span> |
| 241 | + <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (4) C++20</span> |
| 242 | + <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
| 243 | + <span class="k">constexpr</span> <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 244 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">N</span><span class="p">,</span> |
| 245 | + <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (4) C++26</span> |
229 | 246 |
|
230 | 247 | <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
231 | | - <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> |
232 | | - <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (5) C++20 から </span> |
| 248 | + <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 249 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> |
| 250 | + <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (5) C++20</span> |
| 251 | + <span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">A</span><span class="o">></span> |
| 252 | + <span class="k">constexpr</span> <span class="n"><a href="shared_ptr.html">shared_ptr</a></span><span class="o"><</span><span class="n">T</span><span class="o">></span> |
| 253 | + <span class="n">allocate_shared</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span> <span class="n">a</span><span class="p">,</span> |
| 254 | + <span class="k">const</span> <span class="n">remove_extent_t</span><span class="o"><</span><span class="n">T</span><span class="o">>&</span> <span class="n">u</span><span class="p">);</span> <span class="c1">// (5) C++26</span> |
233 | 255 | <span class="p">}</span> |
234 | 256 | </code></pre></div> |
235 | 257 | </p> |
@@ -319,6 +341,7 @@ <h2>関連項目</h2> |
319 | 341 | <h2>参照</h2> |
320 | 342 | <ul> |
321 | 343 | <li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0674r1.html" target="_blank">P0674R1 Extending <code>make_shared</code> to support arrays</a></li> |
| 344 | +<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3037r6.pdf" target="_blank">P3037R6 <code>constexpr std::shared_ptr</code> and friends</a></li> |
322 | 345 | </ul></div> |
323 | 346 |
|
324 | 347 | </div> |
|
0 commit comments