Skip to content

Commit 3bdde42

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 4bd0cb7 commit 3bdde42

File tree

3 files changed

+54
-35
lines changed

3 files changed

+54
-35
lines changed

lang/cpp26/structured_bindings_can_introduce_a_pack.html

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,12 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-04-10T07:27:01">
192-
2025年04月10日 07時27分01秒
191+
<span itemprop="datePublished" content="2025-06-24T02:47:43">
192+
2025年06月24日 02時47分43秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">Akira Takahashi</span>
196+
<span itemprop="name">Raclamusi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -251,12 +251,17 @@ <h3>std::apply()の実装改善</h3>
251251
</code></pre></div>
252252
</p>
253253
<p>C++26での実装:</p>
254-
<p><div class="codehilite"><pre><span></span><code><span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">F</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Tuple</span><span class="o">&gt;</span>
254+
<p><div class="codehilite"><pre><span></span><code><span class="k">namespace</span> <span class="n">detail</span> <span class="p">{</span>
255+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">A</span><span class="p">,</span> <span class="k">class</span> <span class="nc">B</span><span class="o">&gt;</span>
256+
<span class="k">using</span> <span class="n">override_ref</span> <span class="o">=</span> <span class="n"><a href="../../reference/type_traits/conditional.html">std::conditional_t</a></span><span class="o">&lt;</span><span class="n"><a href="../../reference/type_traits/is_rvalue_reference.html">std::is_rvalue_reference_v</a></span><span class="o">&lt;</span><span class="n">A</span><span class="o">&amp;&amp;&gt;</span><span class="p">,</span> <span class="n">B</span><span class="o">&amp;&amp;</span><span class="p">,</span> <span class="n">B</span><span class="o">&amp;&gt;</span><span class="p">;</span>
257+
<span class="p">}</span>
258+
259+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">F</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Tuple</span><span class="o">&gt;</span>
255260
<span class="k">constexpr</span> <span class="n"><a href="../cpp14/decltype_auto.html">decltype(auto)</a></span> <span class="n">apply</span><span class="p">(</span><span class="n">F</span> <span class="o">&amp;&amp;</span><span class="n">f</span><span class="p">,</span> <span class="n">Tuple</span> <span class="o">&amp;&amp;</span><span class="n">t</span><span class="p">)</span>
256261
<span class="p">{</span>
257262
<span class="k">auto</span><span class="o">&amp;&amp;</span> <span class="p">[...</span><span class="n">elems</span><span class="p">]</span> <span class="o">=</span> <span class="n">t</span><span class="p">;</span>
258263
<span class="k">return</span> <span class="nf"><a href="../../reference/functional/invoke.html">std::invoke</a></span><span class="p">(</span><span class="n"><a href="../../reference/utility/forward.html">std::forward</a></span><span class="o">&lt;</span><span class="n">F</span><span class="o">&gt;</span><span class="p">(</span><span class="n">f</span><span class="p">),</span>
259-
<span class="n"><a href="../../reference/utility/forward_like.html">std::forward_like</a></span><span class="o">&lt;</span><span class="n">Tuple</span><span class="p">,</span> <span class="k">decltype</span><span class="p">(</span><span class="n">elems</span><span class="p">)</span><span class="o">&gt;</span><span class="p">(</span><span class="n">elems</span><span class="p">)...);</span>
264+
<span class="k">static_cast</span><span class="o">&lt;</span><span class="n">detail</span><span class="o">::</span><span class="n">override_ref</span><span class="o">&lt;</span><span class="n">Tuple</span><span class="p">,</span> <span class="k">decltype</span><span class="p">(</span><span class="n">elems</span><span class="p">)</span><span class="o">&gt;&gt;</span><span class="p">(</span><span class="n">elems</span><span class="p">)...);</span>
260265
<span class="p">}</span>
261266
</code></pre></div>
262267
</p>

rss.xml

Lines changed: 43 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,51 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<title>cpprefjp - C++日本語リファレンス</title>
44
<link href="https://cpprefjp.github.io" />
5-
<updated>2025-06-23T14:50:03.460685</updated>
6-
<id>725fe437-5830-451a-a95b-8b0f81177944</id>
5+
<updated>2025-06-24T02:52:13.964295</updated>
6+
<id>9f339ce8-cc4f-4e81-8ba9-940928365a5f</id>
77

88

9+
<entry>
10+
<title>構造化束縛でパックを導入できるようにする [P1061R10] -- コード例のエラーを修正 #1456</title>
11+
<link href="https://cpprefjp.github.io/lang/cpp26/structured_bindings_can_introduce_a_pack.html"/>
12+
<id>22f113ec79b132299ea4ef236affc14c0adc201d:lang/cpp26/structured_bindings_can_introduce_a_pack.md</id>
13+
<updated>2025-06-24T11:47:43+09:00</updated>
14+
15+
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/lang/cpp26/structured_bindings_can_introduce_a_pack.md b/lang/cpp26/structured_bindings_can_introduce_a_pack.md
16+
index 5b9018db0..f6debe55b 100644
17+
--- a/lang/cpp26/structured_bindings_can_introduce_a_pack.md
18+
+++ b/lang/cpp26/structured_bindings_can_introduce_a_pack.md
19+
@@ -53,14 +53,21 @@ constexpr decltype(auto) apply(F &amp;amp;&amp;amp;f, Tuple &amp;amp;&amp;amp;t)
20+
C++26での実装:
21+
22+
```cpp
23+
+namespace detail {
24+
+ template &amp;lt;class A, class B&amp;gt;
25+
+ using override_ref = std::conditional_t&amp;lt;std::is_rvalue_reference_v&amp;lt;A&amp;amp;&amp;amp;&amp;gt;, B&amp;amp;&amp;amp;, B&amp;amp;&amp;gt;;
26+
+}
27+
+
28+
template &amp;lt;class F, class Tuple&amp;gt;
29+
constexpr decltype(auto) apply(F &amp;amp;&amp;amp;f, Tuple &amp;amp;&amp;amp;t)
30+
{
31+
auto&amp;amp;&amp;amp; [...elems] = t;
32+
return std::invoke(std::forward&amp;lt;F&amp;gt;(f),
33+
- std::forward_like&amp;lt;Tuple, decltype(elems)&amp;gt;(elems)...);
34+
+ static_cast&amp;lt;detail::override_ref&amp;lt;Tuple, decltype(elems)&amp;gt;&amp;gt;(elems)...);
35+
}
36+
```
37+
+* std::conditional_t[link /reference/type_traits/conditional.md]
38+
+* std::is_rvalue_reference_v[link /reference/type_traits/is_rvalue_reference.md]
39+
* std::invoke[link /reference/functional/invoke.md]
40+
41+
42+
&lt;/code&gt;&lt;/pre&gt;</summary>
43+
44+
<author>
45+
<name>Raclamusi</name>
46+
<email>[email protected]</email>
47+
</author>
48+
</entry>
49+
950
<entry>
1051
<title>get -- get(const tuple&amp;&amp;) の C++ バージョンを修正</title>
1152
<link href="https://cpprefjp.github.io/reference/tuple/tuple/get.html"/>
@@ -943,31 +984,4 @@ index 5112a379a..a949bde56 100644
943984
</author>
944985
</entry>
945986

946-
<entry>
947-
<title>read_env -- execution/read_env: 概要説明の微調整</title>
948-
<link href="https://cpprefjp.github.io/reference/execution/execution/read_env.html"/>
949-
<id>8d5640384d41e916d49abd375ebd94ffcda1708c:reference/execution/execution/read_env.md</id>
950-
<updated>2025-06-19T14:55:12+09:00</updated>
951-
952-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/execution/execution/read_env.md b/reference/execution/execution/read_env.md
953-
index db4146dee..9d278cfa3 100644
954-
--- a/reference/execution/execution/read_env.md
955-
+++ b/reference/execution/execution/read_env.md
956-
@@ -14,7 +14,7 @@ namespace std::execution {
957-
## 概要
958-
`read_env`は、非同期動作の[開始(start)](start.md)時に接続先[Receiver](receiver.md)の[環境](../queryable.md)に対して[クエリオブジェクト](../queryable.md)で問い合わせ、読み取った値を[値完了関数](set_value.md)で送信するSenderファクトリである。
959-
960-
-クエリオブジェクトによるReceiver環境への問い合わせは`read_env`[Sender](sender.md)の構築時ではなく、Receiverと接続されたのち非同期動作が開始されるタイミングまで遅延される。
961-
+クエリオブジェクトによるReceiver環境への問い合わせは`read_env`[Sender](sender.md)構築時やReceiver[接続(connect)](connect.md)ではなく、非同期動作が開始されるタイミングまで遅延される。
962-
[`let_value`](let_value.md)Senderアダプタと組み合わせたり、[Sender Awaitableなコルーチン](with_awaitable_senders.md)での`co_await`式によって、[Scheduler](get_scheduler.md)や[停止トークン](../get_stop_token.md)を読み取ることができる。
963-
964-
965-
&lt;/code&gt;&lt;/pre&gt;</summary>
966-
967-
<author>
968-
<name>yoh</name>
969-
<email>[email protected]</email>
970-
</author>
971-
</entry>
972-
973987
</feed>

sitemap.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40204,7 +40204,7 @@
4020440204

4020540205
<url>
4020640206
<loc>https://cpprefjp.github.io/lang/cpp26/structured_bindings_can_introduce_a_pack.html</loc>
40207-
<lastmod>2025-04-10T16:27:01+09:00</lastmod>
40207+
<lastmod>2025-06-24T11:47:43+09:00</lastmod>
4020840208
<changefreq>daily</changefreq>
4020940209
<priority>0.7</priority>
4021040210
</url>

0 commit comments

Comments
 (0)