188
188
189
189
< p class ="text-right "> < small >
190
190
最終更新日時(UTC):
191
- < span itemprop ="datePublished " content ="2024-06-11T13:45:38 ">
192
- 2024年06月11日 13時45分38秒
191
+ < span itemprop ="datePublished " content ="2024-08-02T04:41:43 ">
192
+ 2024年08月02日 04時41分43秒
193
193
</ span >
194
194
< br />
195
195
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
225
225
< span class ="n "> S</ span > < span class ="n "> last</ span > < span class ="p "> ,</ span >
226
226
< span class ="n "> Comp</ span > < span class ="n "> comp</ span > < span class ="o "> =</ span > < span class ="p "> {},</ span >
227
227
< span class ="n "> Proj</ span > < span class ="n "> proj</ span > < span class ="o "> =</ span > < span class ="p "> {});</ span > < span class ="c1 "> // (1) C++20</ span >
228
+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../iterator/bidirectional_iterator.html "> bidirectional_iterator</ a > </ span > < span class ="n "> I</ span > < span class ="p "> ,</ span >
229
+ < span class ="n "> < a href ="../iterator/sentinel_for.html "> sentinel_for</ a > </ span > < span class ="o "> <</ span > < span class ="n "> I</ span > < span class ="o "> ></ span > < span class ="n "> S</ span > < span class ="p "> ,</ span >
230
+ < span class ="k "> class</ span > < span class ="nc "> Comp</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../functional/ranges_less.html "> ranges::less</ a > </ span > < span class ="p "> ,</ span >
231
+ < span class ="k "> class</ span > < span class ="nc "> Proj</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../functional/identity.html "> identity</ a > </ span > < span class ="o "> ></ span >
232
+ < span class ="n "> requires</ span > < span class ="n "> < a href ="../iterator/sortable.html "> sortable</ a > </ span > < span class ="o "> <</ span > < span class ="n "> I</ span > < span class ="p "> ,</ span > < span class ="n "> Comp</ span > < span class ="p "> ,</ span > < span class ="n "> Proj</ span > < span class ="o "> ></ span >
233
+ < span class ="k "> constexpr</ span > < span class ="n "> I</ span >
234
+ < span class ="n "> inplace_merge</ span > < span class ="p "> (</ span > < span class ="n "> I</ span > < span class ="n "> first</ span > < span class ="p "> ,</ span >
235
+ < span class ="n "> I</ span > < span class ="n "> middle</ span > < span class ="p "> ,</ span >
236
+ < span class ="n "> S</ span > < span class ="n "> last</ span > < span class ="p "> ,</ span >
237
+ < span class ="n "> Comp</ span > < span class ="n "> comp</ span > < span class ="o "> =</ span > < span class ="p "> {},</ span >
238
+ < span class ="n "> Proj</ span > < span class ="n "> proj</ span > < span class ="o "> =</ span > < span class ="p "> {});</ span > < span class ="c1 "> // (1) C++26</ span >
228
239
229
240
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../ranges/bidirectional_range.html "> bidirectional_range</ a > </ span > < span class ="n "> R</ span > < span class ="p "> ,</ span >
230
241
< span class ="k "> class</ span > < span class ="nc "> Comp</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../functional/ranges_less.html "> ranges::less</ a > </ span > < span class ="p "> ,</ span >
235
246
< span class ="n "> < a href ="../ranges/iterator_t.html "> iterator_t</ a > </ span > < span class ="o "> <</ span > < span class ="n "> R</ span > < span class ="o "> ></ span > < span class ="n "> middle</ span > < span class ="p "> ,</ span >
236
247
< span class ="n "> Comp</ span > < span class ="n "> comp</ span > < span class ="o "> =</ span > < span class ="p "> {},</ span >
237
248
< span class ="n "> Proj</ span > < span class ="n "> proj</ span > < span class ="o "> =</ span > < span class ="p "> {});</ span > < span class ="c1 "> // (2) C++20</ span >
249
+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../ranges/bidirectional_range.html "> bidirectional_range</ a > </ span > < span class ="n "> R</ span > < span class ="p "> ,</ span >
250
+ < span class ="k "> class</ span > < span class ="nc "> Comp</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../functional/ranges_less.html "> ranges::less</ a > </ span > < span class ="p "> ,</ span >
251
+ < span class ="k "> class</ span > < span class ="nc "> Proj</ span > < span class ="o "> =</ span > < span class ="n "> < a href ="../functional/identity.html "> identity</ a > </ span > < span class ="o "> ></ span >
252
+ < span class ="n "> requires</ span > < span class ="n "> < a href ="../iterator/sortable.html "> sortable</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../ranges/iterator_t.html "> iterator_t</ a > </ span > < span class ="o "> <</ span > < span class ="n "> R</ span > < span class ="o "> ></ span > < span class ="p "> ,</ span > < span class ="n "> Comp</ span > < span class ="p "> ,</ span > < span class ="n "> Proj</ span > < span class ="o "> ></ span >
253
+ < span class ="k "> constexpr</ span > < span class ="n "> < a href ="../ranges/borrowed_iterator_t.html "> borrowed_iterator_t</ a > </ span > < span class ="o "> <</ span > < span class ="n "> R</ span > < span class ="o "> ></ span >
254
+ < span class ="n "> inplace_merge</ span > < span class ="p "> (</ span > < span class ="n "> R</ span > < span class ="o "> &&</ span > < span class ="n "> r</ span > < span class ="p "> ,</ span >
255
+ < span class ="n "> < a href ="../ranges/iterator_t.html "> iterator_t</ a > </ span > < span class ="o "> <</ span > < span class ="n "> R</ span > < span class ="o "> ></ span > < span class ="n "> middle</ span > < span class ="p "> ,</ span >
256
+ < span class ="n "> Comp</ span > < span class ="n "> comp</ span > < span class ="o "> =</ span > < span class ="p "> {},</ span >
257
+ < span class ="n "> Proj</ span > < span class ="n "> proj</ span > < span class ="o "> =</ span > < span class ="p "> {});</ span > < span class ="c1 "> // (2) C++26</ span >
238
258
< span class ="p "> }</ span >
239
259
</ code > </ pre > </ div >
240
260
</ p >
@@ -288,7 +308,7 @@ <h3>出力</h3>
288
308
</ code > </ pre > </ p >
289
309
< h2 > 実装例</ h2 >
290
310
< ul >
291
- < li > < a href ="http://www.kmonos.net/wlog/115.html#_2300101215 " target ="_blank "> inplace_merge を読んでみた</ a > </ li >
311
+ < li > < a href ="http://www.kmonos.net/wlog/115.html#_2300101215 " target ="_blank "> < code > inplace_merge</ code > を読んでみた</ a > </ li >
292
312
</ ul >
293
313
< h2 > バージョン</ h2 >
294
314
< h3 > 言語</ h3 >
@@ -305,6 +325,10 @@ <h3>処理系</h3>
305
325
< h2 > 参照</ h2 >
306
326
< ul >
307
327
< li > < a href ="https://timsong-cpp.github.io/cppwp/n4861/algorithms " target ="_blank "> N4861 25 Algorithms library</ a > </ li >
328
+ < li > < a href ="https://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2562r1.pdf " target ="_blank "> P2562R1 < code > constexpr</ code > Stable Sorting</ a > < ul >
329
+ < li > C++26から< code > constexpr</ code > に対応した</ li >
330
+ </ ul >
331
+ </ li >
308
332
</ ul > </ div >
309
333
310
334
</ div >
0 commit comments