Skip to content

Commit

Permalink
整数型比較関数の説明と例の改善
Browse files Browse the repository at this point in the history
  • Loading branch information
onihusube committed Feb 3, 2023
1 parent 4adfa0a commit 991f1ac
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 16 deletions.
10 changes: 7 additions & 3 deletions reference/utility/cmp_equal.md
Expand Up @@ -12,15 +12,19 @@ namespace std {
```
## 概要
整数を安全に等値比較する
整数を安全に等値比較(`t == u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
```cpp
std::vector<X> v;
int N = 0;
// 警告:式`i < v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i < v.size(); ++i) {}
// 警告:式`i == v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
if (N == v.size()) {}
// OK
if (std::cmp_equal(N, v.size())) {}
```


Expand Down
10 changes: 7 additions & 3 deletions reference/utility/cmp_greater.md
Expand Up @@ -12,15 +12,19 @@ namespace std {
```
## 概要
整数に対して安全に、左辺が右辺より大きいかを比較する
整数に対して安全に、左辺が右辺より大きいかを比較(`t > u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
```cpp
std::vector<X> v;
int N = 0;
// 警告:式`i < v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i < v.size(); ++i) {}
// 警告:式`N > v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
while (N > v.size()) {}
// OK
while (std::cmp_greater(N, v.size())) {}
```


Expand Down
10 changes: 7 additions & 3 deletions reference/utility/cmp_greater_equal.md
Expand Up @@ -12,15 +12,19 @@ namespace std {
```
## 概要
整数に対して安全に、左辺が右辺以上かを比較する
整数に対して安全に、左辺が右辺以上かを比較(`t >= u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
```cpp
std::vector<X> v;
int N = 0;
// 警告:式`i < v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i < v.size(); ++i) {}
// 警告:式`N >= v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
while (N >= v.size()) {}
// OK
while (std::cmp_greater_equal(N, v.size())) {}
```


Expand Down
2 changes: 1 addition & 1 deletion reference/utility/cmp_less.md
Expand Up @@ -12,7 +12,7 @@ namespace std {
```
## 概要
整数に対して安全に、左辺が右辺より小さいかを比較する
整数に対して安全に、左辺が右辺より小さいかを比較(`t < u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
Expand Down
9 changes: 6 additions & 3 deletions reference/utility/cmp_less_equal.md
Expand Up @@ -12,15 +12,18 @@ namespace std {
```
## 概要
整数に対して安全に、左辺が右辺以下かを比較する
整数に対して安全に、左辺が右辺以下かを比較(`t <= u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
```cpp
std::vector<X> v;
// 警告:式`i < v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i < v.size(); ++i) {}
// 警告:式`i <= v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i <= v.size(); ++i) {}
// OK
for (int i = 0; cmp_less_equal(i, v.size()); ++i) {}
```


Expand Down
10 changes: 7 additions & 3 deletions reference/utility/cmp_not_equal.md
Expand Up @@ -12,15 +12,19 @@ namespace std {
```
## 概要
整数を安全に非等値比較する
整数を安全に非等値比較(`t != u`)する
この関数は、型`T`と型`U`がそれぞれ符号付き整数と符号なし整数のどちらであったとしても、安全に比較できる関数である。以下のように符号付き整数のインデックス変数と符号なし整数の配列要素数の比較によってコンパイラに警告が出力されてしまうような状況で使用できる:
```cpp
std::vector<X> v;
int N = 0;
// 警告:式`i < v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
for (int i = 0; i < v.size(); ++i) {}
// 警告:式`i != v.size()`で、符号付き整数と符号なし整数の間で比較しようとした
if (N != v.size()) {}
// OK
if (std::cmp_not_equal(N, v.size())) {}
```


Expand Down

0 comments on commit 991f1ac

Please sign in to comment.