Skip to content

Commit

Permalink
1.82.0 : いまある分を追加
Browse files Browse the repository at this point in the history
  • Loading branch information
faithandbrave committed Mar 10, 2023
1 parent b09bc33 commit 368ecfc
Show file tree
Hide file tree
Showing 2 changed files with 198 additions and 0 deletions.
1 change: 1 addition & 0 deletions document/version.md
Expand Up @@ -5,6 +5,7 @@

***

- [1.82.0](version/1_82_0.md)
- [1.81.0](version/1_81_0.md)
- [1.80.0](version/1_80_0.md)
- [1.79.0](version/1_79_0.md)
Expand Down
197 changes: 197 additions & 0 deletions document/version/1_82_0.md
@@ -0,0 +1,197 @@
# Boost 1.82.0リリースノート

本家リリースノート:

- <https://github.com/boostorg/website/blob/master/feed/history/boost_1_82_0.qbk>
- <http://www.boost.org/users/history/version_1_82_0.html>


リポジトリは以下:

- <https://github.com/boostorg/>


リポジトリからのビルド方法は、egtraさんのブログを参照:

-[Modularized Boost(GitHubへ移行したリポジトリ)を使用する](http://dev.activebasic.com/egtra/2013/12/03/620/)


## C++03サポートの終了
以下のライブラリは、いまから2リリース後の1.84.0でC++03のサポートを終了する:

- Align
- Bind
- Chrono
- ContainerHash
- Endian
- Function
- Functional
- Io
- Random
- Ratio
- SmartPtr
- System
- Thread
- Timer
- Typeof
- Unordered

このリリース(1.82)と次のリリース(1.83)は、上記のライブラリとその依存関係の大部分でC++03をサポートする最後のリリースとなる。

古いバージョンのコンパイラでは、サポート不足やバグのためにC++11が部分的にしか実装されていないことが多いため、どのコンパイラがC++11の要件を満たしているとみなされるかは、ライブラリによって異なる場合がある。

しかし、一般的なルールとして、コンパイラがC++11のキーワードや構文をまったく認識しない場合(例:`noexcept`の使用、`constexpr`の使用、`=delete`された関数を定義すると即コンパイルエラー)、コンパイラがC++11必須のヘッダーをまったく提供しない場合(例:`<atomic>``<chrono>` をインクルードしようとすると失敗する)、あるいはコンパイラがC++11の機能やヘッダを提供するがまったく使用できない場合、このコンパイラはC++11コンパイラとはみなされない。

このため、例えば14.0 (2015) 以前のMicrosoft Visual C++や、4.8以前のGCCは除外される。


## 新ライブラリ

- [MySql](https://boost.org/libs/mysql)
- Boost.AsioベースのMySQLデータベースサーバーのC++11クライアント (作者Reuben Perez)


## 更新ライブラリ

- [ContainerHash](#container_hash)
- [Math](#math)
- [Multi-index](#multi-index)
- [Multiprecision](#multiprecision)
- [StaticString](#static_string)
- [Test](#test)
- [Unordered](#unordered)
- [URL](#url)


## 更新ツール

- [Build](#build)


## <a id="container_hash" href="#container_hash">ContainerHash</a>

- `hash_value``std::nullopt_t`に対するオーバーロードを追加
- `is_tuple_like`と、`hash_value`のtuple-like型に対するオーバーロードを追加
- `string`のハッシュ化として、品質と速度の両方の改善のために[`mulxp1_hash`](https://github.com/pdimov/mulxp_hash)を使用するよう修正


## <a id="math" href="#math">Math</a>

- [**C++11サポートを非推奨化**] 最小の標準バージョンとしてC++14を要求する
- 最小テストコンパイラはClang-5、GCC-5、MSVC-14.1 (2017) となる
- 多項式評価のためのEstrin's methodを追加
- [GitHub #939](https://github.com/boostorg/math/pull/939) 非心分布 (non-central distributions) のさまざまな問題を修正し、より大きな非心分布に対応できるようにした
- CMake install targetを追加
- 例外のない環境で使用できないものを無効化するために `special_functions.hpp` を修正
- C++14で条件番号の計算 (condition number calculation) が動作するよう修正
- [GitHub #923](https://github.com/boostorg/math/issues/923) `constexpr` テーブル駆動関数を修正し、コードが実際には `constexpr` でない場合に大幅な速度低下を避けるようにした
- [GitHub #894](https://github.com/boostorg/math/pull/894) `tanh_sinh` の境界処理を改善
- Linux arm64、s390x、Apple M1 のテストを追加し、128ビット`long double`を扱うテストケースを修正
- 無限大とNaNをより良く扱うために`constexpr`数学関数を改善
- 積分器 (integrators) をconst-correctにした
- [GitHub #898](https://github.com/boostorg/math/issues/898) `tanh_sinh` の積分器がアンダーフローする問題を修正
- いくつかのプラットフォームがまだサポートしていないため、`std::cbrt`を使用しないようにした
- [GitHub #892](https://github.com/boostorg/math/pull/892) 非心t (non-central T) が偽 (spurious) の `FE_INVALID` 例外を発生させるのを止めた
- 二項分布のエッジケースを修正
- [GitHub #884](https://github.com/boostorg/math/pull/884) `ibeta`の非常に小さな引数の取り扱いを改善
- `ibeta`での無限大とNaNの取り扱いを改善 [@https://github.com/boostorg/math/issues/878 874]を参照してください.
- [GitHub #781](https://github.com/boostorg/math/issues/781) `powm1`のエラーハンドリングを改善
- 指数が超大きい (super large)、または小さいときに、root finder bracketingをより速くブラケットするよう改善
- root finderのエッジケースを修正
- 多くの雑多な警告を修正
- C++17を必要とする機能を使用する際にアサーションを追加し、古い標準バージョンでコンパイラを起動したときのエラーメッセージを改善


## <a id="multi-index" href="#multi-index">Multi-index</a>

- シリアライズで`collection_size_type`の代わりに`unsigned long`を使用するようにし、この変更にともなって`multi_index_container`のシリアライズバージョンを2から3に上げた。`collection_size_type`の値を特別扱いするカスタムアーカイブ型では、古いアーカイブの読み込みに失敗することがある。そのような場合は、読み出し操作の後方互換性を確保するためにマクロ `BOOST_MULTI_INDEX_ENABLE_SERIALIZATION_COMPATIBILITY_V2` をグローバル定義する
- メンテナンス作業


## <a id="multiprecision" href="#multiprecision">Multiprecision</a>

- [**C++11サポートを非推奨化**] 最小の標準バージョンとしてC++14を要求する
- 最小テストコンパイラはClang-5、GCC-5、MSVC-14.1 (2017) となる
- 新たに先行宣言のヘッダを追加
- [GitHub #479](https://github.com/boostorg/multiprecision/issues/479) Eigenとの相互運用性を更新し、Eigenの詳細に依存しないよう修正
- Cmake install targetを追加
- [GitHub #499](https://github.com/boostorg/multiprecision/issues/499) スタンドアロンの場合の文字列からの`cpp_dec_float`構築を修正し、より良いエラーハンドリングを実現した
- [GitHub #530](https://github.com/boostorg/multiprecision/pull/530) C++17モードでの冗長な定義を削除
- スタンドアローンの `itrunc``ltrunc` のエラーハンドリングを修正
- 8進数文字列の解析時に初期化されない可能性があるストレージを修正
- arm64 と s390x の CI テストを追加
- [GitHub #506](https://github.com/boostorg/multiprecision/issues/506) `powm` のために不足していた式テンプレートの展開コードを追加


## <a id="static_string" href="#static_string">StaticString</a>

- Boost.Coreの`string_view``std::string_view`の相互運用をできるよう修正


## <a id="test" href="#test">Test</a>

- いくつかの未使用変数の警告を修正
- `sprintf`の非推奨の警告を修正
- `basic_cstring::rfind`の未定義動作を修正
- GitHub ActionsでのCIを追加


## <a id="unordered" href="#unordered">Unordered</a>

- **メジャーアップデート**
- ノードベースで、オープンアドレッシングなコンテナ`boost::unordered_node_map``boost::unordered_node_set`を追加
- [P2363](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html)で規定された異種混合ルックアップ (heterogeneous lookup) の拡張メンバ関数を追加
- オープンアドレッシングコンテナのpost-mixing前の処理を、定数による拡張乗算 (extended multiplication by a constant) に基づく新しいアルゴリズムに置き換えた
- `emplace`内部で、スタックローカル型がコンテナのアロケータを使用して適切に構築されず、`uses-allocator` 構築を壊していたバグを修正


## <a id="url" href="#url">URL</a>

- 自動的に%のエンコーディングを行う`url::format`を追加
- URL routerの例を追加
- `set_params`便利関数を追加
- `string_view`への暗黙変換をサポート
- パースコンストラクタをimplicitにした
- `string_token::arg`が仮想デストラクタとslice protectionを持つようにした
- `BOOST_URL_DISABLE_THREADS`をサポート
- 改善とバグ修正:
- `WIN32_LEAN_AND_MEAN`が再定義された警告を修正
- 欠落 (absent) と空 (empty) のコンポーネントの差分比較
- 空ポートのようなセグメントを持つ `hier_part_rule` を検出
- root上で正規化した場合のセグメント比較
- hier-part path-rootless は無効なセグメントを考慮するよう修正
- オーバーフローした場合に、ポート番号を0にするよう修正
- ipv4 から文字列のオーバーフローを検出するアルゴリズム


## <a id="build" href="#build">Build</a>

- B2バージョン4.9.4をリリース


## テスト済みコンパイラ
主要なテストコンパイラ:

- Linux:
- 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
- Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
- 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
- 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
- Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
- GCC, C++03: 4.6.3, 11, 12
- GCC, C++11: 4.7.3, 4.8.5, 11, 12
- GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
- GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
- GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
- OS X:
- Apple Clang, C++03: 11.0.3
- Apple Clang, C++11: 11.0.3
- Apple Clang, C++14: 11.0.3
- Apple Clang, C++17: 11.0.3
- Apple Clang, C++20: 11.0.3
- Windows:
- Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3

## 翻訳
[Akira Takahashi](https://github.com/faithandbrave)

0 comments on commit 368ecfc

Please sign in to comment.