|
| 1 | +# Boost 1.89.0リリースノート |
| 2 | + |
| 3 | +本家リリースノート: |
| 4 | + |
| 5 | +- <https://github.com/boostorg/website/blob/master/feed/history/boost_1_89_0.qbk> |
| 6 | +- <http://www.boost.org/users/history/version_1_89_0.html> |
| 7 | + |
| 8 | + |
| 9 | +リポジトリは以下: |
| 10 | + |
| 11 | +- <https://github.com/boostorg/> |
| 12 | + |
| 13 | + |
| 14 | +リポジトリからのビルド方法は、egtraさんのブログを参照: |
| 15 | + |
| 16 | +- 「[Modularized Boost(GitHubへ移行したリポジトリ)を使用する](http://dev.activebasic.com/egtra/2013/12/03/620/)」 |
| 17 | + |
| 18 | + |
| 19 | +## 新ライブラリ |
| 20 | + |
| 21 | +- [Bloom](https://boost.org/libs/bloom) |
| 22 | + - ブルームフィルタ。作者Joaquín M López Muñoz |
| 23 | + |
| 24 | + |
| 25 | +## 更新ライブラリ |
| 26 | + |
| 27 | +- [Any](#any) |
| 28 | +- [Atomic](#atomic) |
| 29 | +- [Beast](#beast) |
| 30 | +- [Charconv](#charconv) |
| 31 | +- [Cobalt](#cobalt) |
| 32 | +- [Compat](#compat) |
| 33 | +- [ContainerHash](#container_hash) |
| 34 | +- [Conversion](#conversion) |
| 35 | +- [Core](#core) |
| 36 | +- [Detail](#detail) |
| 37 | +- [DLL](#dll) |
| 38 | +- [Filesystem](#filesystem) |
| 39 | +- [Geometry](#geometry) |
| 40 | +- [Hash2](#hash2) |
| 41 | +- [Histogram](#histogram) |
| 42 | +- [Iterator](#iterator) |
| 43 | +- [JSON](#json) |
| 44 | +- [Log](#log) |
| 45 | +- [Math](#math) |
| 46 | +- [MQTT5](#mqtt5) |
| 47 | +- [Multiprecision](#multiprecision) |
| 48 | +- [MySQL](#mysql) |
| 49 | +- [PFR](#pfr) |
| 50 | +- [Process](#process) |
| 51 | +- [Random](#random) |
| 52 | +- [TypeIndex](#type_index) |
| 53 | +- [Unordered](#unordered) |
| 54 | + |
| 55 | + |
| 56 | +## 更新ツール |
| 57 | + |
| 58 | +- [Build](#build) |
| 59 | + |
| 60 | + |
| 61 | +## <a id="any" href="#any">Any</a> |
| 62 | + |
| 63 | +- **C++20モジュールの初期サポート**。詳細はドキュメントを参照 |
| 64 | + |
| 65 | + |
| 66 | +## <a id="atomic" href="#atomic">Atomic</a> |
| 67 | + |
| 68 | +- x86、AArch32、AArch64、PPCバックエンドのasmベースにTSANインストルメンテーションを追加。これにより、スレッド同期にBoost.Atomicを使用するコードのTSANの誤検出エラーが抑制される |
| 69 | +- Boost 1.84でのアナウンスに従い、Windows 10より古いWindowsバージョンのサポートを削除 |
| 70 | + - MinGW-w64ユーザーへの注意。MinGW-w64のWindows SDKヘッダはデフォルトで`_WIN32_WINNT`を古いWindowsバージョンに定義するため、Boost.Atomicおよびそれを使用するコードをコンパイルする際に`_WIN32_WINNT=0x0A00`または`BOOST_USE_WINAPI_VERSION=0x0A00`を定義する必要がある場合がある |
| 71 | +- Windows CEのサポートは非推奨となり、将来のリリースで削除される予定 |
| 72 | +- タイムアウト付き待機操作のサポートを追加 |
| 73 | +- `thread_pause`操作を公開。これはスピンループのバックオフ対策として使用できる。PowerPCのサポートを追加し、`thread_pause`でのAArch64のサポートを改善 |
| 74 | +- `BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT`マクロ定義を削除。ライブラリが現在C++11を要求するため、`BOOST_ATOMIC_FLAG_INIT`は常にサポートされる |
| 75 | +- アトミック列挙型のビット演算を有効化。これは列挙型がビットマスクを実装するために使用される場合に有用 |
| 76 | + |
| 77 | + |
| 78 | +## <a id="beast" href="#beast">Beast</a> |
| 79 | + |
| 80 | +- 修正 |
| 81 | + - `async_base`で`immediate_executor_type`を条件付きで定義 |
| 82 | + - `detail/cpu_info.hpp`に不足していた`cstdint`ヘッダを追加 |
| 83 | + - `std::is_trivial`の非推奨警告を修正 |
| 84 | + - `handshake_timeout`が読み取り中のクロージングハンドシェイクにも適用されるようになった |
| 85 | +- 改善点 |
| 86 | + - `detail/work_guard.hpp`を`net::executor_work_guard`に置き換え |
| 87 | + - MinGWでのテストビルドの移植性の問題を修正 |
| 88 | +- ドキュメンテーション |
| 89 | + - ドキュメントから移動されたセクションを削除 |
| 90 | + - テストから余分なログメッセージを削除 |
| 91 | +- 謝辞 |
| 92 | + - yliu1021氏 |
| 93 | + |
| 94 | + |
| 95 | +## <a id="charconv" href="#charconv">Charconv</a> |
| 96 | + |
| 97 | +- 整数型の`from_chars`でのパフォーマンス低下を修正 |
| 98 | +- 浮動小数点型の`to_chars`で指定された精度での丸めと末尾の小数点のバグを修正 |
| 99 | + |
| 100 | + |
| 101 | +## <a id="cobalt" href="#cobalt">Cobalt</a> |
| 102 | + |
| 103 | +- ジェネレータとプロミスのムーブ代入を修正 |
| 104 | +- 内部例外を修正 |
| 105 | +- IOライブラリを追加。Cobalt.ioはコンパイル済みライブラリとしてasioの大部分のサブセットを提供 |
| 106 | + |
| 107 | + |
| 108 | +## <a id="compat" href="#compat">Compat</a> |
| 109 | + |
| 110 | +- `move_only_function.hpp`を追加 |
| 111 | + |
| 112 | + |
| 113 | +## <a id="container_hash" href="#container_hash">ContainerHash</a> |
| 114 | + |
| 115 | +- `hash_is_avalanching`トレイトクラスを追加 |
| 116 | + |
| 117 | + |
| 118 | +## <a id="conversion" href="#conversion">Conversion</a> |
| 119 | + |
| 120 | +- `polymorphic_downcast`と`polymorphic_cast`をconstexprで使用できる機能を追加(C++20が必要) |
| 121 | + |
| 122 | + |
| 123 | +## <a id="core" href="#core">Core</a> |
| 124 | + |
| 125 | +- [GitHub #199](https://github.com/boostorg/core/pull/199) 仕様に従い、入力0に対して`bit_ceil`が1を返すよう修正 |
| 126 | +- [GitHub #190](https://github.com/boostorg/core/issues/190) `boost::core::string_view`に`std::format`のサポートを追加 |
| 127 | + |
| 128 | + |
| 129 | +## <a id="detail" href="#detail">Detail</a> |
| 130 | + |
| 131 | +- `BOOST_BITMASK`によって生成される演算子が、列挙型の基底型を使用してビット演算を実装するようになった。演算子は可能な場合に`noexcept`と`constexpr`でマークされる |
| 132 | +- `BOOST_BITMASK`によって生成される関数`bitmask_set`は非推奨としてマークされた。将来のリリースでは、`BOOST_BITMASK`はこの関数の生成を停止する。ユーザーは値がゼロかどうかをテストするために二重否定(`!!mask`)を使用することを推奨する。これはBoost.Filesystemで定義された列挙型などに影響する |
| 133 | + |
| 134 | + |
| 135 | +## <a id="dll" href="#dll">DLL</a> |
| 136 | + |
| 137 | +- Cygwinでのコンパイルとエクスポートを修正。PR提出してくれた[Luohao Wang](https://github.com/Luohaothu)氏に多大なる感謝! |
| 138 | +- FreeBSDでのビルドを修正。バグ報告してくれた[ash](https://github.com/agokhale)氏に感謝! |
| 139 | +- プリプロセッサオプションに合わせて`BOOST_DLL_USE_STD_FS` CMakeオプションを追加。PR提出してくれた[Yury Bura](https://github.com/yurybura)氏に感謝! |
| 140 | + |
| 141 | + |
| 142 | +## <a id="filesystem" href="#filesystem">Filesystem</a> |
| 143 | + |
| 144 | +- [GitHub #335](https://github.com/boostorg/filesystem/issues/335) `path::append`で潜在的に無関係なオブジェクトへのポインタを比較することに関するASAN警告を修正 |
| 145 | + |
| 146 | + |
| 147 | +## <a id="geometry" href="#geometry">Geometry</a> |
| 148 | + |
| 149 | +- 主要な改善点 |
| 150 | + - [GitHub #1369](https://github.com/boostorg/geometry/pull/1369) トラバーサルの書き直し |
| 151 | + - [GitHub #1402](https://github.com/boostorg/geometry/pull/1402) ジオメトリ多面体サーフェスを追加 |
| 152 | +- 改善点 |
| 153 | + - [GitHub #1404](https://github.com/boostorg/geometry/pull/1404) バッファのパフォーマンス改善 |
| 154 | + - [GitHub #1405](https://github.com/boostorg/geometry/pull/1405) ヘッダファイルでの静的変数と関数を回避 |
| 155 | +- 破壊的変更 |
| 156 | + - [GitHub #1401](https://github.com/boostorg/geometry/pull/1401) 非推奨のヘッダを削除 |
| 157 | +- 問題の解決 |
| 158 | + - [GitHub #1221](https://github.com/boostorg/geometry/issues/1221) 整数座標を持つ直線的なマルチポリゴンとの差分が、切断された内部を持つ無効なポリゴンを生成する |
| 159 | + - [GitHub #1295](https://github.com/boostorg/geometry/issues/1295) 交差での誤った結果(結果ポリゴンが入力ポリゴンの最大のものと等しい) |
| 160 | + - [GitHub #1349](https://github.com/boostorg/geometry/issues/1349) ポリゴンの差分が誤った結果を与える |
| 161 | + - [GitHub #1382](https://github.com/boostorg/geometry/issues/1382) バッファ操作が自己交差を作成する |
| 162 | + - エラーと警告のさまざまな修正 |
| 163 | + |
| 164 | + |
| 165 | +## <a id="hash2" href="#hash2">Hash2</a> |
| 166 | + |
| 167 | +- Blake2アルゴリズム(`blake2s_256`、`blake2b_512`)を追加 |
| 168 | +- XXH3アルゴリズム(`xxh3_128`)を追加 |
| 169 | + |
| 170 | + |
| 171 | +## <a id="histogram" href="#histogram">Histogram</a> |
| 172 | + |
| 173 | +- CMakeの最小バージョンとCMakeでのPython検出を更新 |
| 174 | +- ドキュメントの改善 |
| 175 | + - 暗黙的に変換できない複数の値型を受け入れる軸の作成例を追加 |
| 176 | + - 次元ごとのデータが既に連続データとして利用可能な場合に、多次元ヒストグラムで`histogram::fill`を効率的に使用する方法を示す |
| 177 | +- ユーザー定義リテラル演算子の非推奨形式を使用しないようにした |
| 178 | +- b2でのモジュラービルド構造のサポートを追加 |
| 179 | +- 狭められた型に関するMSVCでの警告を修正 |
| 180 | +- ビン内のすべての値を格納するコレクタアキュムレータを追加 |
| 181 | +- 詳細名前空間のテストとクラスへの内部変更 |
| 182 | + |
| 183 | + |
| 184 | +## <a id="iterator" href="#iterator">Iterator</a> |
| 185 | + |
| 186 | +- [GitHub #92](https://github.com/boostorg/iterator/issues/92) 無効なイテレータを生成する可能性があった`filter_iterator`のコピー/変換コンストラクタを修正 |
| 187 | +- [GitHub #93](https://github.com/boostorg/iterator/issues/93) C++26で非推奨となる`std::is_trivial`の`iterator_facade`での使用を削除 |
| 188 | +- [GitHub #61](https://github.com/boostorg/iterator/issues/61) `iterator_facade::operator[]`が条件付きで値またはプロキシを返すのではなく、常にプロキシを返すようになった。これにより、値型がトリビアルコピー可能かどうかに関係なく、ユーザーは演算子の結果に参照をバインドできる |
| 189 | +- `iterator_facade::operator[]`によって返されるプロキシが、参照された値への逆参照演算子の転送をサポートするようになった。これにより`it[n]->foo()`と`(*it[n]).foo()`式がコンパイルできるようになる |
| 190 | +- `iterator_facade::operator[]`によって返されるプロキシが、代入演算子で完全転送を実装するようになった |
| 191 | + |
| 192 | + |
| 193 | +## <a id="json" href="#json">JSON</a> |
| 194 | + |
| 195 | +- ドキュメントを刷新 |
| 196 | +- Rangeである`optional`は`optional`として分類される |
| 197 | +- 基本クラスを持つ型に対してDescribedクラスサポートが有効化される |
| 198 | + |
| 199 | + |
| 200 | +## <a id="log" href="#log">Log</a> |
| 201 | + |
| 202 | +- `BOOST_LOG_WITHOUT_ASIO`設定マクロのサポートを追加。これはBoost.Asioへの依存関係を削除し、関連する機能を無効にするために使用できる |
| 203 | +- [GitHub #246](https://github.com/boostorg/log/pull/246) `text_file_backend`でログファイル名を構成する際に、ファイルカウンタのロケール非依存のフォーマットを使用。これにより`file_collector::scan_for_files`での後続のファイル名解析の失敗を修正 |
| 204 | +- [GitHub #195](https://github.com/boostorg/log/issues/195) フィルタリング式にユーザー定義の関数オブジェクトを注入することを簡素化する新しい`wrap_filter`ユーティリティを追加 |
| 205 | + |
| 206 | + |
| 207 | +## <a id="math" href="#math">Math</a> |
| 208 | + |
| 209 | +- ビルドに明示的なC++14の`<type_traits>`と`constexpr`要件を追加 |
| 210 | +- さまざまなプラットフォームでのGPUサポートの修正を収集 |
| 211 | +- `x = 0`での下側不完全ガンマ関数を修正 |
| 212 | +- jSOアルゴリズムでの外部アーカイブエラーを修正 |
| 213 | +- ibetaでの数値アンダーフローを修正 |
| 214 | +- 大きなaとbの値での逆ibetaを修正 |
| 215 | +- C++26で安全にするための可変引数関数を修正 |
| 216 | + |
| 217 | + |
| 218 | +## <a id="mqtt5" href="#mqtt5">MQTT5</a> |
| 219 | + |
| 220 | +- [GitHub #31](https://github.com/boostorg/mqtt5/issues/31) ブローカーリストでのURIパスの不正な解析を修正 |
| 221 | +- [GitHub #33](https://github.com/boostorg/mqtt5/issues/33) デフォルトの最大パケットサイズが`CONNECT`パケットで明示的に設定されるようになった |
| 222 | +- [GitHub #33](https://github.com/boostorg/mqtt5/issues/33) 大きな最大パケットサイズ値での高CPU使用率を修正 |
| 223 | + |
| 224 | + |
| 225 | +## <a id="multiprecision" href="#multiprecision">Multiprecision</a> |
| 226 | + |
| 227 | +- **メジャーアップデート** |
| 228 | +- 新しいバックエンドタイプを追加:`cpp_double_fp_backend` |
| 229 | +- Boost.Serializationとの名前空間の衝突を修正 |
| 230 | + |
| 231 | + |
| 232 | +## <a id="mysql" href="#mysql">MySQL</a> |
| 233 | + |
| 234 | +- [GitHub #313](https://github.com/boostorg/mysql/issues/313) `caching_sha2_password`認証プラグインがTLSなしで使用できるようになった。これはMySQL 8以降のデフォルトである。このプラグインを使用しようとするプレーンテキスト接続は`client_errc::auth_plugin_requires_ssl`で失敗しなくなった |
| 235 | +- [GitHub #468](https://github.com/boostorg/mysql/issues/468), [GitHub #488](https://github.com/boostorg/mysql/issues/488) ターゲットデータベースが存在せず、`caching_sha2_password`が使用されている場合の接続確立中に`client_errc::incomplete_message`が返される問題を修正。適切なサーバー生成の診断が返されるようになった |
| 236 | +- [GitHub #469](https://github.com/boostorg/mysql/issues/469) ハンドシェイクアルゴリズムがプロトコル違反に対してより回復力を持つようになった |
| 237 | +- [GitHub #475](https://github.com/boostorg/mysql/pull/475) 不足しているインクルードによるgcc-15でのビルド失敗を修正。PR提出してくれた[hhoffstaette](https://github.com/hhoffstaette)氏に感謝 |
| 238 | +- [公式ドライバに対するベンチマーク](https://www.boost.org/doc/libs/master/libs/mysql/doc/html/mysql/benchmarks.html)を追加 |
| 239 | +- [GitHub #461](https://github.com/boostorg/mysql/issues/461) `metadata`表現を最適化し、構築が高速になり、メモリ使用量が少なくなった |
| 240 | + |
| 241 | + |
| 242 | +## <a id="pfr" href="#pfr">PFR</a> |
| 243 | + |
| 244 | +- 新しい推奨されるBoostプラクティスに従ってC++20モジュールを書き直し。詳細はドキュメントを参照 |
| 245 | +- 最新のclangコンパイラでのC++26コンパイルを修正。レポートしてくれた[Valery Mironov](https://github.com/MBkkt)氏に感謝! |
| 246 | +- 「長さゼロの配列」コンパイラ拡張を使用する型をサポート |
| 247 | +- タイプミスを修正。問題を強調してくれた[Egor](https://github.com/TryKuhn)氏に感謝! |
| 248 | +- `boost::pfr::names_as_array(empty_struct{})`で`std::array<std::string_view, 0>`型を返すようにし、`for (std::string_view name : boost::pfr::names_as_array(empty_struct{}))`のコンパイルを可能にした。バグレポートしてくれた[sabudilovskiy](https://github.com/sabudilovskiy)氏に多大なる感謝! |
| 249 | + |
| 250 | + |
| 251 | +## <a id="process" href="#process">Process</a> |
| 252 | + |
| 253 | +- v1の`process.hpp`インクルードをエミュレートする`v1.hpp`を追加 |
| 254 | +- Windowsパスエスケープの修正 |
| 255 | +- terminateとasync_waitが終了コード値の損失につながる終了コードの問題を修正 |
| 256 | + |
| 257 | + |
| 258 | +## <a id="random" href="#random">Random</a> |
| 259 | + |
| 260 | +- `beta_distribution`によってNANが生成される問題を修正 |
| 261 | +- `beta_distribution::operator()`のパフォーマンスを改善 |
| 262 | + |
| 263 | + |
| 264 | +## <a id="type_index" href="#type_index">TypeIndex</a> |
| 265 | + |
| 266 | +- **C++20モジュールの初期サポート**。詳細はドキュメントを参照 |
| 267 | + |
| 268 | + |
| 269 | +## <a id="unordered" href="#unordered">Unordered</a> |
| 270 | + |
| 271 | +- 非推奨の`boost::unordered::hash_is_avalanching`は現在、`<boost/container_hash/hash_is_avalanching.hpp>`の`boost::hash_is_avalanching`のusing宣言となった。代わりにそのヘッダを直接使用すること。`<boost/unordered/hash_traits.hpp>`は将来削除される予定 |
| 272 | +- オープンアドレシングコンテナに`pull(const_iterator)`を追加。この操作により、ムーブ構築による要素の効率的な削除と取得が可能になる |
| 273 | + |
| 274 | + |
| 275 | +## <a id="build" href="#build">Build</a> |
| 276 | + |
| 277 | +- [B2バージョン5.3.2](https://www.boost.org/tools/build/doc/html/#_version_5_3_2)のリリースを含む |
| 278 | + |
| 279 | + |
| 280 | +## テスト済みコンパイラ |
| 281 | +主要なテストコンパイラ: |
| 282 | + |
| 283 | +- Linux: |
| 284 | + - Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0 |
| 285 | + - Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 |
| 286 | + - Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 |
| 287 | + - Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 |
| 288 | + - Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 |
| 289 | + - GCC, C++03: 4.6.3, 11, 12 |
| 290 | + - GCC, C++11: 4.7.3, 4.8.5, 11, 12 |
| 291 | + - GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 |
| 292 | + - GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 |
| 293 | + - GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 |
| 294 | +- OS X: |
| 295 | + - Apple Clang, C++03: 11.0.3 |
| 296 | + - Apple Clang, C++11: 11.0.3 |
| 297 | + - Apple Clang, C++14: 11.0.3 |
| 298 | + - Apple Clang, C++17: 11.0.3 |
| 299 | + - Apple Clang, C++20: 11.0.3 |
| 300 | +- Windows: |
| 301 | + - Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 |
| 302 | + |
| 303 | + |
| 304 | +## 翻訳 |
| 305 | +[Akira Takahashi](https://github.com/faithandbrave) |
| 306 | + |
0 commit comments