Skip to content

Commit

Permalink
doc: revise about compatible upper bound type.
Browse files Browse the repository at this point in the history
  • Loading branch information
ashigeru committed Jul 12, 2024
1 parent 5480c63 commit 6061dd3
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions docs/ja/scalar-expressions-and-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,9 @@ notes:

### 単項互換昇格

単項互換型昇格 (*unary compatible type promotion*) は、あるデータ型を実行時における互換性上界のデータ型に変換する。
単項互換型昇格 (*unary compatible type promotion*) は、あるデータ型を実行時における互換性上限のデータ型に変換する。
このとき、互換性上限とは、実行時における互換性のあるデータ型の集合のうち、それ以上 [拡大変換](#拡大変換) を適用できないデータ型のことを指す。

この規則はほとんどのデータ型にとって恒等変換と同じであるが、以下の表に示すデータ型は異なるデータ型への変換を行う。

| 変換元 | 変換先 |
Expand All @@ -644,15 +646,15 @@ notes:
| `octet varying` | `octet varying(*)` |

上記の表にないデータ型については、元のデータ型と同等 (恒等変換) の結果になる。
また、変換先は互換性のある集合の上界であるため、再度単項互換昇格を適用しても同一のデータ型になることが保証される。
また、変換先は互換性のある集合の上限であるため、再度単項互換昇格を適用しても同一のデータ型になることが保証される。

変換前後でデータ型が異なる組み合わせの特徴は、いずれも変換前後で実行環境上のデータの表現が変わらない、または同等のものとして取り扱えるという点である。

----
note:

* 単項互換昇格は、主に関数オーバーロード解決時のあいまいさ解消を企図している
* 関数の仮引数のデータ型を互換性上界のみに制限し、実引数に単項互換昇格を適用することで、その後のオーバーロード候補を適切に削減できる
* 関数の仮引数のデータ型を互換性上限のみに制限し、実引数に単項互換昇格を適用することで、その後のオーバーロード候補を適切に削減できる

### 単一化変換

Expand Down

0 comments on commit 6061dd3

Please sign in to comment.