20211023; version 1.431: ・非multilineモード時に /[^;]*^;?/ が"abc"の先頭にマッチしなかったバグ を修正。 20211003; version 1.430: ・Boyer-Moore-Horspool検索が行われる際にlastIndexが更新されなかったバ グを修正。 ・Marko Njezic氏提供の改善コードを部分的に統合(氏に感謝します)。 ・/(?:\d+\.){2,3}/ のように短い表現の繰り返しについてはカウンタを使わ ず /\d\.\d\.(?:\d\.)?/ のような等価な表現に展開するように変更。 20210919; version 1.420: ・?({0,1}相当)用の最適化処理を追加。 ・misc/conftest.cpp内で参照しているECMAScript仕様書の版を2021に変更。 ・re_matchクラスのoperator[](), index(), endIndex()の引数の型を unsigned intからsize_tに変更。Overloadの解決に失敗する場合がある問題 を修正。 ・misc/conftest.cppのu32ctou8c()内でVisual Studio 2017が std::length_errorをthrowする問題に対応。 ・regexpクラスのexec(), test()にre_match型インスタンスの参照が 引数として渡されぬ場合に、函数内で使い捨てのインスタンスを作るのはや めて、新規に追加したメンバ変数を使うように変更(ループ内で繰り返しこ れらの函数を呼び出す場合の速度低下防止のため)。 ・デバッグ用マクロを有効にすると異なる結果が返ってくる可能性があったの を修正。 ※最後の4つの問題を報告してくださったMarko Njezic氏に感謝します。氏 からは他にもパフォーマンス改善案をいくつか寄せていただいているのです が、ここのところ時間が取れずそちらはまだmerge出来ていません。 20210429; version 1.412: ・1.400で導入した最適化処理のバグにより /aa|a|aa/ が "a" にマッチしな くなっていた問題を修正。 20210424; version 1.411: ・1.400で導入した最適化処理内の不用意な行削除が原因で、/abc|ab|ac/ が "ac" に対してマッチしなくなっていた問題を修正。 20210407; version 1.410: ・1.400以降、パターンコンパイラ内部でmove代入演算子が使われる時にメモ リリークしていた問題を修正。 20210214; version 1.400: ・文字列のみからなる選択(例:/abc|abd|acde/)用の最適化処理を新規に追 加。 ・その他細かな改良など。 20210131; version 1.310: ・UTF-8用内部iteratorの改良。 20200724; version 1.300: ・入れ子になったキャプチャ括弧で冗長な退避・復元処理をせぬように変更。 ・文字クラスの二分探索にEytzinger layoutを導入。 ・小さな文字クラス用に線形探索を再実装。 ・名前付き括弧の名前部分をパーズするためのプロパティーデータの扱いを変 更。basic_regex型インスタンス内に読み込むのを止めて、必要な時のみ読 み込むように。 20200703; version 1.220: ・BMH検索時に、不正なUTF-8シークウェンスの前後にある有効なシークウェン スが読み飛ばされてしまう問題を修正(SRELLより継承したバグ)。 20200630; version 1.210: ・Boyer-Moore-Horspool検索の改良。 20200628; version 1.200: ・最適化処理の調整。 20200620; version 1.101: ・グループ名のチェックを行う位置を\uエスケープの解釈後に移動。 ・misc/conftest.cppをversion 1.001に更新。参照しているECMAScript仕様書 の版を2020 (ES11)に変更。 20200616; version 1.100: ・文字列を大文字小文字の区別ありで比較する時は、コードユニット単位で照 合較するように変更(UTF-8またはUTF-16での検索が少し速くなる可能性が あります)。 20200601; version 1.000: 最初のリリース版。