From 6d0102112bd8c8d260e461fbac72a589fc985e61 Mon Sep 17 00:00:00 2001 From: teruyamato0731 <77840326+teruyamato0731@users.noreply.github.com> Date: Thu, 2 Apr 2026 20:31:23 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20`std::abs`=E3=81=AB=E8=A1=A8?= =?UTF-8?q?=E7=8F=BE=E4=B8=8D=E5=8F=AF=E8=83=BD=E3=81=AA=E5=80=A4=E3=82=92?= =?UTF-8?q?=E6=B8=A1=E3=81=97=E3=81=9F=E9=9A=9B=E3=81=AE=E6=9C=AA=E5=AE=9A?= =?UTF-8?q?=E7=BE=A9=E5=8B=95=E4=BD=9C=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6?= =?UTF-8?q?=E8=BF=BD=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/cstdlib/abs.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/cstdlib/abs.md b/reference/cstdlib/abs.md index 3ed633d177..3c22d2eb04 100644 --- a/reference/cstdlib/abs.md +++ b/reference/cstdlib/abs.md @@ -63,6 +63,8 @@ namespace std { ## 備考 +- 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 + - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。 - パラメータの型`X`において[`is_unsigned_v`](/reference/type_traits/is_unsigned.md)``が`true`であり、`X`が整数昇格によって`int`に変換できない場合、プログラムは不適格となる - Cとの互換性のため、`int`に昇格できる符号なし整数型は許可される - C++23では、(4), (5), (6)が(7)に統合され、拡張浮動小数点数型を含む浮動小数点数型へのオーバーロードとして定義された From 31d036f97ec149ba264bd3fa0fb13817fac0695a Mon Sep 17 00:00:00 2001 From: teruyamato0731 <77840326+teruyamato0731@users.noreply.github.com> Date: Thu, 2 Apr 2026 20:48:30 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E6=95=B4=E6=95=B0=E5=9E=8B=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E3=81=99=E3=82=8B=E3=82=AA=E3=83=BC=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E3=81=AB=E9=99=90=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/cstdlib/abs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/cstdlib/abs.md b/reference/cstdlib/abs.md index 3c22d2eb04..d74d9b9def 100644 --- a/reference/cstdlib/abs.md +++ b/reference/cstdlib/abs.md @@ -63,7 +63,7 @@ namespace std { ## 備考 -- 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 +- (1), (2), (3), (8), (9) : 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。 - パラメータの型`X`において[`is_unsigned_v`](/reference/type_traits/is_unsigned.md)``が`true`であり、`X`が整数昇格によって`int`に変換できない場合、プログラムは不適格となる - Cとの互換性のため、`int`に昇格できる符号なし整数型は許可される From cf120714965c2a30ec382312e67a4e549fc16bb9 Mon Sep 17 00:00:00 2001 From: teruyamato0731 <77840326+teruyamato0731@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:42:13 +0900 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20cmath=E3=81=AEabs=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=82=82=E8=A8=98=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/cmath/abs.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/cmath/abs.md b/reference/cmath/abs.md index 12397ef4ef..0f98ad6517 100644 --- a/reference/cmath/abs.md +++ b/reference/cmath/abs.md @@ -50,6 +50,8 @@ namespace std { ## 備考 - $$ f(x) = | x | $$ +- (6), (7), (8) : 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 + - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。 - 任意の整数型に対するオーバーロード(5)は C++11 で追加されたが、[一部の符号なし整数型に対して問題を引き起こす](http://wg21.cmeerw.net/lwg/issue2192)ことから C++17 で削除され、符号付き整数型に対するオーバーロード(6), (7), (8)が追加された - C++23では、(1), (2), (3)が(4)に統合され、拡張浮動小数点数型を含む浮動小数点数型へのオーバーロードとして定義された From 81de6e3179a952dcaff3b35594e88acfc2ebb7f3 Mon Sep 17 00:00:00 2001 From: teruyamato0731 <77840326+teruyamato0731@users.noreply.github.com> Date: Fri, 3 Apr 2026 10:52:18 +0900 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20=E8=A1=A8=E8=A8=98=E3=81=AE?= =?UTF-8?q?=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/cmath/abs.md | 2 +- reference/cstdlib/abs.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/cmath/abs.md b/reference/cmath/abs.md index 0f98ad6517..7efe043487 100644 --- a/reference/cmath/abs.md +++ b/reference/cmath/abs.md @@ -51,7 +51,7 @@ namespace std { ## 備考 - $$ f(x) = | x | $$ - (6), (7), (8) : 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 - - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。 + - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例:`int`における[`INT_MIN`](/reference/climits/int_min.md))の絶対値は、表現できる最大値([`INT_MAX`](/reference/climits/int_max.md))よりも1大きくなってしまうため、この未定義動作に該当する。 - 任意の整数型に対するオーバーロード(5)は C++11 で追加されたが、[一部の符号なし整数型に対して問題を引き起こす](http://wg21.cmeerw.net/lwg/issue2192)ことから C++17 で削除され、符号付き整数型に対するオーバーロード(6), (7), (8)が追加された - C++23では、(1), (2), (3)が(4)に統合され、拡張浮動小数点数型を含む浮動小数点数型へのオーバーロードとして定義された diff --git a/reference/cstdlib/abs.md b/reference/cstdlib/abs.md index d74d9b9def..cda9c3f690 100644 --- a/reference/cstdlib/abs.md +++ b/reference/cstdlib/abs.md @@ -64,7 +64,7 @@ namespace std { ## 備考 - (1), (2), (3), (8), (9) : 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。 - - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。 + - 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例:`int`における[`INT_MIN`](/reference/climits/int_min.md))の絶対値は、表現できる最大値([`INT_MAX`](/reference/climits/int_max.md))よりも1大きくなってしまうため、この未定義動作に該当する。 - パラメータの型`X`において[`is_unsigned_v`](/reference/type_traits/is_unsigned.md)``が`true`であり、`X`が整数昇格によって`int`に変換できない場合、プログラムは不適格となる - Cとの互換性のため、`int`に昇格できる符号なし整数型は許可される - C++23では、(4), (5), (6)が(7)に統合され、拡張浮動小数点数型を含む浮動小数点数型へのオーバーロードとして定義された