Skip to content

Commit 3e3dfeb

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 7517d43 commit 3e3dfeb

4 files changed

Lines changed: 88 additions & 67 deletions

File tree

‎reference/chrono/make24.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ <h2>例</h2>
263263
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">false</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">0h</a></span><span class="p">);</span>
264264

265265
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">12h</a></span><span class="p">);</span>
266-
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mf">1l</span><span class="n">BuuvbeVCHtEoVsXRAXfZxaccvEhPoop</span><span class="p">);</span>
266+
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">1h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">);</span>
267267
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">3h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">15h</a></span><span class="p">);</span>
268268
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n"><span style="color:#ff0000">chrono::make24</span></span><span class="p">(</span><span class="n"><a href="duration/op_h.html">11h</a></span><span class="p">,</span><span class="w"> </span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n"><a href="duration/op_h.html">23h</a></span><span class="p">);</span>
269269
<span class="p">}</span>

‎reference/type_traits/is_within_lifetime.html‎

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<meta property="og:url" content="https://cpprefjp.github.io/reference/type_traits/is_within_lifetime.html" />
2929
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
3030
<meta property="og:type" content="article" />
31-
<meta property="og:description" content="共用体の指定されたメンバがアクティブかを定数式で判定する。" />
31+
<meta property="og:description" content="" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="std::is_within_lifetime - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/type_traits/is_within_lifetime.html" />
35-
<meta name="twitter:description" content="共用体の指定されたメンバがアクティブかを定数式で判定する。" />
35+
<meta name="twitter:description" content="" />
3636

3737

3838
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
@@ -189,12 +189,12 @@
189189
<p class="text-right"><small>
190190
最終更新日時:
191191
<time itemprop="datePublished" class="js-local-time"
192-
datetime="2026-09-16T12:43:04+09:00">
193-
2026年09月16日 12時43分04秒 (JST)
192+
datetime="2026-09-22T13:54:52+09:00">
193+
2026年09月22日 13時54分52秒 (JST)
194194
</time>
195195
<br/>
196196
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
197-
<span itemprop="name">Akira Takahashi</span>
197+
<span itemprop="name">onihusube</span>
198198
</span>
199199
が更新
200200
</small></p>
@@ -244,8 +244,9 @@
244244
</code></pre></div>
245245
</p>
246246
<h2>概要</h2>
247-
<p>共用体の指定されたメンバがアクティブかを定数式で判定する。</p>
248-
<p>定数式では非アクティブな共用体メンバへのアクセスができないため、以下のような非アクティブなメンバの値を使用してアクティブメンバを判定する方法が使用できない。</p>
247+
<p>定数式において、<code>p</code>に配置されているオブジェクトが有効期間内にあり、かつ<code>const U*</code>のポインタへキャスト可能かどうかを判定する。</p>
248+
<h3>共用体のアクティブメンバ判定</h3>
249+
<p>この関数は主に、共用体の指定されたメンバがアクティブかを定数式中で判定するためのものである。定数式では非アクティブな共用体メンバへのアクセスができないため、以下のような非アクティブなメンバの値を使用してアクティブメンバを判定する方法が使用できない。</p>
249250
<p><div class="codehilite"><pre><span></span><code><span class="k">struct</span><span class="w"> </span><span class="nc">OptBool</span><span class="w"> </span><span class="p">{</span>
250251
<span class="w"> </span><span class="k">union</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">b</span><span class="p">;</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="p">;</span><span class="w"> </span><span class="p">};</span>
251252

@@ -263,6 +264,23 @@ <h2>概要</h2>
263264
</code></pre></div>
264265
</p>
265266
<p>この関数を使用することで、コンパイル時に指定メンバがアクティブかを判定することができる。</p>
267+
<h3>ダウンキャスト可能かどうかの判定</h3>
268+
<p>第一テンプレートパラメータ<code>U</code>は<code>T</code>のポインタを<code>U</code>のポインタへキャスト可能かどうかを判定するためのもので、主に<code>T</code>から<code>U</code>へのダウンキャストが定数式中で可能かどうかを判定するために使用する。</p>
269+
<p><div class="codehilite"><pre><span></span><code><span class="k">struct</span><span class="w"> </span><span class="nc">Base</span><span class="w"> </span><span class="p">{};</span>
270+
<span class="k">struct</span><span class="w"> </span><span class="nc">Derived</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">Base</span><span class="w"> </span><span class="p">{};</span>
271+
272+
<span class="k">consteval</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">f</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
273+
<span class="w"> </span><span class="n">Base</span><span class="w"> </span><span class="n">b</span><span class="p">{};</span>
274+
<span class="w"> </span><span class="n">Derived</span><span class="w"> </span><span class="n">d</span><span class="p">{};</span>
275+
<span class="w"> </span><span class="n">Base</span><span class="o">*</span><span class="w"> </span><span class="n">d_ptr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">d</span><span class="p">;</span>
276+
277+
<span class="w"> </span><span class="c1">// d_ptrはDerivedのポインタにダウンキャスト可能</span>
278+
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">is_within_lifetime</span><span class="o">&lt;</span><span class="n">Derived</span><span class="o">&gt;</span><span class="p">(</span><span class="n">d_ptr</span><span class="p">));</span>
279+
<span class="w"> </span><span class="c1">// &amp;bはDerivedにダウンキャスト不可</span>
280+
<span class="w"> </span><span class="n"><a href="../cassert/assert.html">assert</a></span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">is_within_lifetime</span><span class="o">&lt;</span><span class="n">Derived</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nb">false</span><span class="p">);</span>
281+
<span class="p">}</span>
282+
</code></pre></div>
283+
</p>
266284
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる">適格要件</a></h2>
267285
<p><code>static_cast&lt;const volatile U*&gt;(p)</code>が<a class="cpprefjp-defined-word" data-desc="プログラムが文法規則・診断対象の意味規則・単一定義規則を満たすこと" href="../../implementation-compliance.html#dfn-well-formed">適格</a>であること。</p>
268286
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>

‎rss.xml‎

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,69 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<title>cpprefjp - C++日本語リファレンス</title>
44
<link href="https://cpprefjp.github.io" />
5-
<updated>2026-09-21T19:40:40.510844</updated>
6-
<id>91acb640-92f1-4787-b613-0b8e3747fda5</id>
5+
<updated>2026-09-22T04:56:36.488715</updated>
6+
<id>9b58ff33-8634-4c5e-9431-1bbb14479c11</id>
77

88

9+
<entry>
10+
<title>is_within_lifetime -- is_within_lifetime : P3450R1の変更についての説明を追加</title>
11+
<link href="https://cpprefjp.github.io/reference/type_traits/is_within_lifetime.html"/>
12+
<id>fc8c09b1a2059666606d2eef69f73d6c3b8ee516:reference/type_traits/is_within_lifetime.md</id>
13+
<updated>2026-09-22T13:54:52+09:00</updated>
14+
15+
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/type_traits/is_within_lifetime.md b/reference/type_traits/is_within_lifetime.md
16+
index 93e92d1e1..58da12cf4 100644
17+
--- a/reference/type_traits/is_within_lifetime.md
18+
+++ b/reference/type_traits/is_within_lifetime.md
19+
@@ -12,9 +12,12 @@ namespace std {
20+
```
21+
22+
## 概要
23+
-共用体の指定されたメンバがアクティブかを定数式で判定する。
24+
25+
-定数式では非アクティブな共用体メンバへのアクセスができないため、以下のような非アクティブなメンバの値を使用してアクティブメンバを判定する方法が使用できない。
26+
+定数式において、`p`に配置されているオブジェクトが有効期間内にあり、かつ`const U*`のポインタへキャスト可能かどうかを判定する。
27+
+
28+
+### 共用体のアクティブメンバ判定
29+
+
30+
+この関数は主に、共用体の指定されたメンバがアクティブかを定数式中で判定するためのものである。定数式では非アクティブな共用体メンバへのアクセスができないため、以下のような非アクティブなメンバの値を使用してアクティブメンバを判定する方法が使用できない。
31+
32+
```cpp
33+
struct OptBool {
34+
@@ -35,6 +38,25 @@ struct OptBool {
35+
36+
この関数を使用することで、コンパイル時に指定メンバがアクティブかを判定することができる。
37+
38+
+### ダウンキャスト可能かどうかの判定
39+
+
40+
+第一テンプレートパラメータ`U`は`T`のポインタを`U`のポインタへキャスト可能かどうかを判定するためのもので、主に`T`から`U`へのダウンキャストが定数式中で可能かどうかを判定するために使用する。
41+
+
42+
+```cpp
43+
+struct Base {};
44+
+struct Derived : public Base {};
45+
+
46+
+consteval void f() {
47+
+ Base b{};
48+
+ Derived d{};
49+
+ Base* d_ptr = &amp;amp;d;
50+
+
51+
+ // d_ptrはDerivedのポインタにダウンキャスト可能
52+
+ assert(std::is_within_lifetime&amp;lt;Derived&amp;gt;(d_ptr));
53+
+ // &amp;amp;bはDerivedにダウンキャスト不可
54+
+ assert(std::is_within_lifetime&amp;lt;Derived&amp;gt;(&amp;amp;b) == false);
55+
+}
56+
+```
57+
58+
## 適格要件
59+
`static_cast&amp;lt;const volatile U*&amp;gt;(p)`が適格であること。
60+
&lt;/code&gt;&lt;/pre&gt;</summary>
61+
62+
<author>
63+
<name>onihusube</name>
64+
<email>44743040+onihusube@users.noreply.github.com</email>
65+
</author>
66+
</entry>
67+
968
<entry>
1069
<title>推論補助 -- set / multiset / unordered_set / unordered_multiset : GCCの最小バージョンを更新</title>
1170
<link href="https://cpprefjp.github.io/reference/set/multiset/op_deduction_guide.html"/>
@@ -198,62 +257,6 @@ index a7b9f597f..27046dda3 100644
198257
}
199258
```
200259
* uses_allocator_construction_args[color ff0000]
201-
&lt;/code&gt;&lt;/pre&gt;</summary>
202-
203-
<author>
204-
<name>rotarymars</name>
205-
<email>s.goto2050@gmail.com</email>
206-
</author>
207-
</entry>
208-
209-
<entry>
210-
<title>uninitialized_move -- uninitialized_move, uninitialized_move_n : constの範囲からムーブすると説明していた例を修正</title>
211-
<link href="https://cpprefjp.github.io/reference/memory/uninitialized_move.html"/>
212-
<id>f34996e3776a7292c5d5da984f7277905727e728:reference/memory/uninitialized_move.md</id>
213-
<updated>2026-09-20T20:42:53+09:00</updated>
214-
215-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/uninitialized_move.md b/reference/memory/uninitialized_move.md
216-
index dad5799b8..0d516e83f 100644
217-
--- a/reference/memory/uninitialized_move.md
218-
+++ b/reference/memory/uninitialized_move.md
219-
@@ -67,7 +67,8 @@ for (; first != last; ++result, ++first)
220-
221-
int main()
222-
{
223-
- const std::vector&amp;lt;int&amp;gt; v = {1, 2, 3};
224-
+ // ムーブ元となるため、constにはしない
225-
+ std::vector&amp;lt;int&amp;gt; v = {1, 2, 3};
226-
227-
std::allocator&amp;lt;int&amp;gt; alloc;
228-
229-
&lt;/code&gt;&lt;/pre&gt;</summary>
230-
231-
<author>
232-
<name>rotarymars</name>
233-
<email>s.goto2050@gmail.com</email>
234-
</author>
235-
</entry>
236-
237-
<entry>
238-
<title>uninitialized_move_n -- uninitialized_move, uninitialized_move_n : constの範囲からムーブすると説明していた例を修正</title>
239-
<link href="https://cpprefjp.github.io/reference/memory/uninitialized_move_n.html"/>
240-
<id>f34996e3776a7292c5d5da984f7277905727e728:reference/memory/uninitialized_move_n.md</id>
241-
<updated>2026-09-20T20:42:53+09:00</updated>
242-
243-
<summary type="html">&lt;pre&gt;&lt;code&gt;diff --git a/reference/memory/uninitialized_move_n.md b/reference/memory/uninitialized_move_n.md
244-
index 1962f416f..ab4bdc41a 100644
245-
--- a/reference/memory/uninitialized_move_n.md
246-
+++ b/reference/memory/uninitialized_move_n.md
247-
@@ -67,7 +67,8 @@ for (; n &amp;gt; 0; ++result, (void)++first, --n)
248-
249-
int main()
250-
{
251-
- const std::vector&amp;lt;int&amp;gt; v = {1, 2, 3};
252-
+ // ムーブ元となるため、constにはしない
253-
+ std::vector&amp;lt;int&amp;gt; v = {1, 2, 3};
254-
255-
std::allocator&amp;lt;int&amp;gt; alloc;
256-
257260
&lt;/code&gt;&lt;/pre&gt;</summary>
258261

259262
<author>

‎sitemap.xml‎

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

23982398
<url>
23992399
<loc>https://cpprefjp.github.io/reference/type_traits/is_within_lifetime.html</loc>
2400-
<lastmod>2026-09-16T12:43:04+09:00</lastmod>
2400+
<lastmod>2026-09-22T13:54:52+09:00</lastmod>
24012401
<changefreq>daily</changefreq>
24022402
<priority>0.7</priority>
24032403
</url>

0 commit comments

Comments
 (0)