|
189 | 189 | <p class="text-right"><small> |
190 | 190 | 最終更新日時: |
191 | 191 | <time itemprop="datePublished" class="js-local-time" |
192 | | - datetime="2026-08-18T08:20:20+09:00"> |
193 | | - 2026年08月18日 08時20分20秒 (JST) |
| 192 | + datetime="2026-08-31T13:13:13+09:00"> |
| 193 | + 2026年08月31日 13時13分13秒 (JST) |
194 | 194 | </time> |
195 | 195 | <br/> |
196 | 196 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
@@ -474,6 +474,13 @@ <h3>chronoライブラリでのフォーマットフラグ</h3> |
474 | 474 | <li>便宜上のリテラルキャスト<code>STATICALLY-WIDEN</code>を導入する。<code>STATICALLY-WIDEN<charT>("...")</code>は、<code>charT</code>が<code>char</code>である場合は<code>"..."</code>、<code>charT</code>が<code>wchar_t</code>である場合は<code>L"..."</code>を意味する。</li> |
475 | 475 | <li><code><a href="hh_mm_ss.html">hh_mm_ss</a></code>オブジェクトの<code><a href="hh_mm_ss/is_negative.html">is_negative()</a></code>が<code>true</code>である場合、出力される文字列の先頭に<code>STATICALLY-WIDEN<charT>("-")</code>が挿入される</li> |
476 | 476 | </ul> |
| 477 | +<h2>備考</h2> |
| 478 | +<ul> |
| 479 | +<li>文字列リテラルエンコーディングがUnicodeエンコーディング形式であり、かつロケールが<a class="cpprefjp-defined-word" data-desc="処理系定義の動作。処理系によって事前に定めた動作をする" href="../../implementation-compliance.html#dfn-implementation-defined-behavior">処理系定義</a>のロケール集合に含まれる場合、ロケールに依存する各置換は、置換文字列を文字列リテラルエンコーディングに変換したかのように行われる<ul> |
| 480 | +<li>これにより、たとえばリテラルエンコーディングがUTF-8で、ロケールがそれとは異なるエンコーディング (CP1251など) を使用する場合でも、出力全体が同じエンコーディングとなり、文字化けが発生しない</li> |
| 481 | +</ul> |
| 482 | +</li> |
| 483 | +</ul> |
477 | 484 | <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a></h2> |
478 | 485 | <ul> |
479 | 486 | <li>指定されたフォーマットフラグに必要な情報が含まれていない場合、<code><a href="../format/format_error.html">format_error</a></code><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>が送出される (例として、<code><a href="duration.html">duration</a></code>には曜日をフォーマットするために必要な情報が含まれていない)<ul> |
@@ -542,6 +549,14 @@ <h2>参照</h2> |
542 | 549 | <li>C++26で、<code>%y</code>が年の符号によらず年のうしろ2桁を表すことが明確化された。たとえば<code>std::format("{:%C %y}", -1976y)</code>は<code>"-20 76"</code>となる</li> |
543 | 550 | </ul> |
544 | 551 | </li> |
| 552 | +<li><a href="https://cplusplus.github.io/LWG/issue3565" target="_blank">LWG Issue 3565. Handling of encodings in localized formatting of chrono types is underspecified</a><ul> |
| 553 | +<li>C++23で、ロケールのエンコーディングと文字列リテラルエンコーディングが異なる場合の動作が規定されていなかった問題が、P2419R2によって解決された</li> |
| 554 | +</ul> |
| 555 | +</li> |
| 556 | +<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2419r2.html" target="_blank">P2419R2 Clarify handling of encodings in localized formatting of chrono types</a><ul> |
| 557 | +<li>C++23で、文字列リテラルエンコーディングがUnicodeエンコーディング形式である場合に、ロケールに依存する置換が文字列リテラルエンコーディングへ変換されることが規定された</li> |
| 558 | +</ul> |
| 559 | +</li> |
545 | 560 | <li><a href="https://cplusplus.github.io/LWG/issue3842" target="_blank">LWG Issue 3842. Unclear wording for precision in <code>chrono-format-spec</code></a><ul> |
546 | 561 | <li>C++23で、<code>precision</code>(精度)が<code>rep</code>を浮動小数点型とする<code>duration</code>の特殊化に対してのみ有効であることが明確化された</li> |
547 | 562 | </ul> |
|
0 commit comments