|
|
|
@ -20,7 +20,7 @@ C와 다르게, 미정의 동작은 러스트에서는 꽤 제한되어 있습
|
|
|
|
|
* 지금 실행하는 스레드가 지원하지 않는 [타겟 기능들][target] 로 컴파일된 코드를 실행하는 것
|
|
|
|
|
* 잘못된 값을 생산하는 것 (혼자서나 `enum`/`struct`/배열/튜플과 같은 복합 타입의 필드로써나):
|
|
|
|
|
* 0도 1도 아닌 `bool`
|
|
|
|
|
* 유효하지 않은 식별자를 사용하는 `enum`
|
|
|
|
|
* 유효하지 않은 식별자[^1]를 사용하는 `enum`
|
|
|
|
|
* 널 `fn` 포인터
|
|
|
|
|
* [0x0, 0xD7FF] 와 [0xE000, 0x10FFFF] 범위를 벗어나는 `char`
|
|
|
|
|
* `!` 타입의 값 (이 타입의 모든 값은 유효하지 않습니다)
|
|
|
|
@ -65,3 +65,4 @@ C와 다르게, 미정의 동작은 러스트에서는 꽤 제한되어 있습
|
|
|
|
|
[`NonNull`]: https://doc.rust-lang.org/std/ptr/struct.NonNull.html
|
|
|
|
|
[behavior-considered-undefined]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
|
|
|
|
|
[behavior-not-considered-unsafe]: https://doc.rust-lang.org/reference/behavior-not-considered-unsafe.html
|
|
|
|
|
[^1]: "식별자(discriminant)"는 열거형의 각각의 형(variant)에 대응하는 정수입니다. 보통 0부터 시작합니다.
|
|
|
|
|