Skip to content

Commit 9e96d23

Browse files
committed
reflect reviews
1 parent cc940e1 commit 9e96d23

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

1.6/ja/book/raw-pointers.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
there are two types that are extra-special. Much of Rust’s safety comes from
66
compile-time checks, but raw pointers don’t have such guarantees, and are
77
[unsafe][unsafe] to use. -->
8-
Rustは標準ライブラリに異なるスマートポインタの型を幾つか用意していますが、更に特殊な型が2つあります。Rustの安全性の多くはコンパイル時のチェックに起因するものですが、生ポインタや [unsafe][unsafe] を使用するとそういった保証が得られません
8+
Rustは標準ライブラリに異なるスマートポインタの型を幾つか用意していますが、更に特殊な型が2つあります。Rustの安全性の多くはコンパイル時のチェックに依るものですが、生ポインタを用いるとそういった保証が得られないため [unsafe][unsafe] です
99

1010
<!-- `*const T` and `*mut T` are called ‘raw pointers’ in Rust. Sometimes, when
1111
writing certain kinds of libraries, you’ll need to get around Rust’s safety
@@ -14,7 +14,7 @@ your library, while exposing a safe interface for your users. For example, `*`
1414
pointers are allowed to alias, allowing them to be used to write
1515
shared-ownership types, and even thread-safe shared memory types (the `Rc<T>`
1616
and `Arc<T>` types are both implemented entirely in Rust). -->
17-
`*const T``*mut T` はRustにおいて「生ポインタ」と呼ばれます。時々、特定の種類のライブラリを書く時に、あなたは幾つかの理由でRustが行う安全性の保証を避けなければならないこともあります。今回のケースでは、ユーザに安全なインターフェースを提供するライブラリの実装に生ポインタを使用できます。例えば、 `*` ポインタはエイリアスとして振る舞うこともできるので、所有権を共有する型を書くのに用いたり、スレッドセーフな共有メモリ型でさえも実装できます。( `Rc<T>``Arc<T>` 型は完全にRustのみで実装されています)
17+
`*const T``*mut T` はRustにおいて「生ポインタ」と呼ばれます。時々、ある種ののライブラリを書く際に、あなたは何らかの理由でRustが行う安全性の保証を避けなければならないこともあります。このようなケースでは、ユーザに安全なインターフェースを提供しつつ、ライブラリの実装に生ポインタを使用できます。例えば、 `*` ポインタはエイリアスとして振る舞うこともできるので、所有権を共有する型を書くのに用いたり、スレッドセーフな共有メモリ型でさえも実装できます。( `Rc<T>``Arc<T>` 型は完全にRustのみで実装されています)
1818

1919
<!-- Here are some things to remember about raw pointers that are different than
2020
other pointer types. They: -->
@@ -74,7 +74,7 @@ error: dereference of raw pointer requires unsafe function or block [E0133]
7474

7575
<!-- When you dereference a raw pointer, you’re taking responsibility that it’s not
7676
pointing somewhere that would be incorrect. As such, you need `unsafe`: -->
77-
生ポインタを参照外しする時、あなたは間違っている場所を指していないという責任を負うことになります。そういう時は、 `unsafe` を付けなければなりません。
77+
生ポインタを参照外しする時、ポインタが間違った場所を指していないことに対して責任を負うことになります。そういう時は、 `unsafe` を付けなければなりません。
7878

7979
```rust
8080
let x = 5;
@@ -117,7 +117,7 @@ satisfy the aliasing and mutability laws of references. The compiler assumes
117117
these properties are true for any references, no matter how they are created,
118118
and so any conversion from raw pointers is asserting that they hold. The
119119
programmer *must* guarantee this. -->
120-
逆に、 `*const` から 参照 `&` へ遡るのは安全ではありません。 `&T` は常に有効であるため、最低でも `*const T` は型 `T` の有効な実体を指さなければならないのです。その上、ポインタは参照のエイリアシングとミュータビリティの規則も満たす必要があります。コンパイラはあらゆる参照についてこれらのプロパティが真であると仮定しており、その生成方法によらず適用するため、生ポインタからのあらゆる変換もまた真であると断言します。プログラマがこのことを保証 *しなければならない* のです。
120+
逆に、 `*const` から 参照 `&` へ遡るのは安全ではありません。 `&T` は常に有効であるため、最低でも `*const T` は型 `T` の有効な実体を指さなければならないのです。その上、ポインタは参照のエイリアシングとミュータビリティの規則も満たす必要があります。コンパイラはあらゆる参照についてこれらの性質が真であると仮定しており、その生成方法に依らず適用するため、生ポインタからのいかなる変換も、参照先の値が上記の性質を満たすと表明していることになります。プログラマがこのことを保証 *しなければならない* のです。
121121

122122
<!-- The recommended method for the conversion is: -->
123123
おすすめの変換の方法は以下のとおりです。

0 commit comments

Comments
 (0)