diff --git a/document/version/1_82_0.md b/document/version/1_82_0.md index 9730e44..3a35f52 100644 --- a/document/version/1_82_0.md +++ b/document/version/1_82_0.md @@ -20,21 +20,31 @@ 以下のライブラリは、いまから2リリース後の1.84.0でC++03のサポートを終了する: - Align +- Any +- Atomic - Bind - Chrono - ContainerHash +- Conversion +- DLL - Endian +- Filesystem - Function - Functional - Io +- LexicalCast +- Log - Random - Ratio - SmartPtr - System +- Stacktrace - Thread - Timer +- TypeIndex - Typeof - Unordered +- Variant このリリース(1.82)と次のリリース(1.83)は、上記のライブラリとその依存関係の大部分でC++03をサポートする最後のリリースとなる。 @@ -53,14 +63,29 @@ ## 更新ライブラリ +- [Any](#any) +- [Atomic](#atomic) +- [Beast](#beast) - [ContainerHash](#container_hash) +- [Core](#core) +- [DLL](#dll) +- [Filesystem](#filesystem) +- [Geometry](#geometry) +- [Histogram](#histogram) +- [JSON](#json) +- [Locale](#locale) - [Math](#math) - [Multi-index](#multi-index) - [Multiprecision](#multiprecision) +- [Nowide](#nowide) +- [PFR](#pfr) +- [Process](#process) +- [Stacktrace](#stacktrace) - [StaticString](#static_string) - [Test](#test) - [Unordered](#unordered) - [URL](#url) +- [Variant](#variant) ## 更新ツール @@ -68,6 +93,26 @@ - [Build](#build) +## Any + +- [GitHub #25](https://github.com/boostorg/any/pull/25) 非推奨の `utility/enable_if.hpp` の代わりに `core/enable_if.hpp` ヘッダを使用するようになった。PRをくれたMichael Ford氏に感謝 + + +## Atomic + +- AVX をサポートする x86 ターゲット用にコンパイルされた場合、128 ビットのアトミックロードとストアにベクタ命令が使用されるようになった +- 32-bit x86 ターゲットでは、`memory_order_seq_cst`セマンティクスを持つ 64-bit アトミックロードとストアは、メモリ順序付け命令を発行するようになった +- Boost.Atomic 1.73 で非推奨となった `atomic::storage()` アクセッサと `atomic::storage_type` 型を削除。代わりに `atomic::value()` と `atomic::value_type` を使用することを推奨 + + +## Beast + +- `source_location`での`error_code`の使用を追加 +- `tcp_stream` が、タイマーの正しい実行形式を使用するよう修正 +- error_categories が数値の ID を使用するよう修正 +- `file_body` にシークをサポート + + ## ContainerHash - `hash_value`の`std::nullopt_t`に対するオーバーロードを追加 @@ -75,6 +120,88 @@ - `string`のハッシュ化として、品質と速度の両方の改善のために[`mulxp1_hash`](https://github.com/pdimov/mulxp_hash)を使用するよう修正 +## Core + +- `boost/core/snprintf.hpp` ヘッダーを追加し、`snprintf`、`vsnprintf` およびそれらの `wchar_t` 対応のポータブル定義を追加 +- 非推奨のヘッダ `boost/core/is_same.hpp` と `boost::core::is_same` は将来のリリースで削除される予定 + - 代わりに Boost.TypeTraits または C++ 標準ライブラリの型付けを使用することを推奨する +- `boost::ref` のメンバ関数と関連するメンバ関数に `noexcept` をつけた +- `boost::swap` 関数に `noexcept` をつけた。これは、型が例外を投げないスワップ操作をサポートしているかどうかによって異なる +- `boost::core::launder` のポータブルな実装を追加 +- `alignof` のポータブルな実装である `BOOST_CORE_ALIGNOF` を追加 +- `std::max_align_t` の移植版である `boost::core::max_align_t` と、 `max_align_t` のアライメントである `boost::core::max_align` を追加 +- C++17 の `std::pmr::memory_resource` と同等の移植性を持つ `boost::core::memory_resource` を追加 +- `boost/core/serialization.hpp` を追加。これは、ライブラリがシリアライゼーションのヘッダを含めずに型の Boost.Serialization サポートを実装できるようにするプリミティブのコレクションであり、それによってライブラリがシリアライゼーションに依存するようにする +- `std::data`の実装である`boost::data`を追加 +- `std::size`の実装である`boost::size`を追加 +- `boost::span` を更新し、 `std::initializer_list` から範囲を作成するために `boost::data` を使用するようにした +- `std::identity`の実装である `boost::identity` を追加しました。この機能は Boost.Functional から移動した + + +## DLL + +- [GitHub #57](https://github.com/boostorg/dll/pull/57) `size_t`から`uint32_t`への暗黙変換を回避。Travers Biddle氏のPull Requestに感謝 + + +## Filesystem + +- [GitHub #273](https://github.com/boostorg/filesystem/issues/273) パス変換のコンストラクタ引数が寛容すぎるために発生するコンパイルエラーを修正 +- [GitHub #271](https://github.com/boostorg/filesystem/issues/271) [v4] `path::remove_filename` が末尾のディレクトリセパレータを保持するようになった +- パスからファイル名とそれに先立つディレクトリセパレータを削除する `path::remove_filename_and_trailing_separators` を追加。この動作は Filesystem v3 の `path::remove_filename` と似ているが、v4 でも使用可能 +- パス中のファイル名を置換する `path::replace_filename` を追加 +- [GitHub #279](https://github.com/boostorg/filesystem/issues/279) ODR 違反を避けるために、ライブラリのバージョン選択の実装を更新 +- [GitHub #282](https://github.com/boostorg/filesystem/issues/282) Windowsにおいて、SMBv1共有のファイルの属性を照会する際の回避策を追加。以前は、SMBv1共有のディレクトリは、通常のファイルとして報告される可能性があった。これは、SMBv2以降には影響しない + + +## Geometry + +- 大きな改善 + - [GitHub #1045](https://github.com/boostorg/geometry/pull/1045) (multi)linestringsと(multi)polygons向けにgeographic bufferをサポート +- 改善 + - [GitHub #1114](https://github.com/boostorg/geometry/pull/1114) 距離比較 : dynamic geometriesのサポートを追加 + - [GitHub #1046](https://github.com/boostorg/geometry/pull/1046) `covered_by()`に`box`をサポートし、ジオメトリの組み合わせが増えた + - `convered_by(box, areal)` (cartesian CSのみ) + - `convered_by(geometry, box)` +- 解決したissue + - [GitHub #705](https://github.com/boostorg/geometry/pull/705) WKT : タブと改行を許可 + - [GitHub #1109](https://github.com/boostorg/geometry/issues/1109), [GitHub #1108](https://github.com/boostorg/geometry/issues/1108) union向けの修正 + - サンプルコードに対して様々な修正を行った +- **破壊的変更** + - 空の多角形のWKT出力表現が`POLYGON()`になり、他のジオメトリとの整合性が取れるようになった + + +## Histogram + +- `detail::span` と `detail::make_span` を `boost::core` の実装に置き換えた +- ドキュメントを改善 +- いくつかのケースで `std::min` と `std::max` の使い方を保護 + - Han Jiang 氏による貢献 (min,max マクロは一般的な Windows ヘッダーによって不正に設定されるので、回避する必要がある) +- 今後、ライブラリ内で保護されていないmin,maxトークンの使用を検出するテストを追加 +- 最新の clang-14 と gcc-11+ の推論ガイドをサポートするように修正した + + +## JSON + +- `set_at_pointer`を追加 +- `boost::hash`をサポート +- 呼び出し元が提供するシリアライザーストレージをサポート +- `std::optional`向けに欠落要素のための`value_to`をサポート +- エスケープ文字の内部でパーサーが中断する問題を修正 +- `sentinel()`がユニークなポインタを返すようにした + + +## Locale + +- [GitHub #144](https://github.com/boostorg/locale/pull/144) `get_system_locale` およびその依存ファイルは、POSIX で定義された `$LC_CTYPE` よりも `$LC_ALL` を正しく優先するようになった +- `utf8_codecvt::out` は末尾の (UTF) サロゲートに対して `partial` を返すようになった +- ロケールを解析するために `boost::locale::util::locale_data` を追加 +- `boost::locale::info::encoding()` の結果が大文字であることをドキュメント化。例として`"utf-8"`ではなく`"UTF-8"` +- [GitHub #148](https://github.com/boostorg/locale/pull/148) M49の国コード(`en_001`や`en_150`など)に対応 +- [GitHub #148](https://github.com/boostorg/locale/pull/148) `en_US_POSIX` を `C` ロケールのエイリアスとして扱うようにした +- [GitHub #149](https://github.com/boostorg/locale/pull/149) セグメンテーションのサポートがない場合(ICUがない場合)のエラーを改善した +- コンパイラの警告を修正 + + ## Math - [**C++11サポートを非推奨化**] 最小の標準バージョンとしてC++14を要求する @@ -123,6 +250,38 @@ - [GitHub #506](https://github.com/boostorg/multiprecision/issues/506) `powm` のために不足していた式テンプレートの展開コードを追加 +## Nowide + +- `convert_string`に`(std::)string`のインスタンスをとるオーバーロードを追加 +- [GitHub #170](https://github.com/boostorg/nowide/pull/170) `path` (`std::filesystem`もしくは`boost::filesystem`) のストリームへの (UTF-8) `quoted`出力を追加 + + +## PFR + +- [GitHub #111](https://github.com/boostorg/pfr/pull/111) `boost::pfr::is_implicitly_reflectable` を実装し、集成体をリフレクト可能か否かに特殊化させる機構を実装。Denis Mikhailov氏のPRに感謝 +- `boost::pfr::get` を集成体の要素の型に対して実装 +- リフレクションのライブラリサポートを検出するために `BOOST_PFR_ENABLED` マクロを実装 +- [GitHub #114](https://github.com/boostorg/pfr/pull/114) 終端文字の欠落を修正。PR をくれた Denis Mikhailov 氏に感謝 +- [GitHub #118](https://github.com/boostorg/pfr/pull/118) 古いコンパイラでの `boost/pfr/config.hpp` のコンパイルを修正。Denis Mikhailov 氏の PR に感謝 +- [GitHub #119](https://github.com/boostorg/pfr/pull/119) 古いコンパイラで壊れた C++17 構造化束縛の回避策を追加。Denis Mikhailov 氏の PR に感謝 +- [GitHub #117](https://github.com/boostorg/pfr/pull/117) `-Wzero-as-null-pointer-constant`の警告を回避。Markus F.X.J. Oberhumer 氏による PR に感謝 +- 複数のタイプミスを修正。Denis Mikhailov氏の修正に感謝 +- [GitHub #121](https://github.com/boostorg/pfr/pull/121) 不足していた `#pragma once` を追加。PR をくれた [caozhanhao](https://github.com/caozhanhao) 氏に感謝 +- ドキュメントの複数の修正と改善 + + +## Process + +- V2 に外部プロセスの管理機能を追加(まだ実験中) +- V1 では `wait_for` と `wait_until` を非推奨とした。これらは将来的に削除される予定です! + + +## Stacktrace + +- [GitHub #132](https://github.com/boostorg/stacktrace/pull/132) ドキュメントとコメントの誤字を修正。PRをくれたChocobo1氏に感謝 +- `BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC` が定義されている場合の `backtrace_create_state` のマルチスレッドフラグの検出を修正 + + ## StaticString - Boost.Coreの`string_view`と`std::string_view`の相互運用をできるよう修正 @@ -164,6 +323,11 @@ - ipv4 から文字列のオーバーフローを検出するアルゴリズム +## Variant + +- [GitHub #105] 非推奨の `utility/addressof` の代わりに `core/addressof` を使用するようになった。PR をくれた Michael Ford 氏に感謝 + + ## Build - B2バージョン4.9.4をリリース