Skip to content

Commit 6d01021

Browse files
feat: std::absに表現不可能な値を渡した際の未定義動作について追記
1 parent c20c72f commit 6d01021

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

reference/cstdlib/abs.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ namespace std {
6363
6464
6565
## 備考
66+
- 引数の絶対値が、戻り値の型で表現できない場合、未定義動作を引き起こす。
67+
- 一般的な2の補数表現のシステムにおいて、符号付き整数型の最小値(例: `int` における `INT_MIN`)の絶対値は、表現できる最大値(`INT_MAX`)よりも1大きくなってしまうため、この未定義動作に該当する。
6668
- パラメータの型`X`において[`is_unsigned_v`](/reference/type_traits/is_unsigned.md)`<X>`が`true`であり、`X`が整数昇格によって`int`に変換できない場合、プログラムは不適格となる
6769
- Cとの互換性のため、`int`に昇格できる符号なし整数型は許可される
6870
- C++23では、(4), (5), (6)が(7)に統合され、拡張浮動小数点数型を含む浮動小数点数型へのオーバーロードとして定義された

0 commit comments

Comments
 (0)