diff --git a/src/doc/guide-pointers.md b/src/doc/guide-pointers.md index cf7ecd7e51f..64b440259cf 100644 --- a/src/doc/guide-pointers.md +++ b/src/doc/guide-pointers.md @@ -445,11 +445,32 @@ fn succ(x: &int) -> int { *x + 1 } to ```{rust} +use std::rc::Rc; + fn box_succ(x: Box) -> int { *x + 1 } -fn rc_succ(x: std::rc::Rc) -> int { *x + 1 } +fn rc_succ(x: Rc) -> int { *x + 1 } ``` +Note that the caller of your function will have to modify their calls slightly: + +```{rust} +use std::rc::Rc; + +fn succ(x: &int) -> int { *x + 1 } + +let ref_x = &5i; +let box_x = box 5i; +let rc_x = Rc::new(5i); + +succ(ref_x); +succ(&*box_x); +succ(&*rc_x); +``` + +The initial `*` dereferences the pointer, and then `&` takes a reference to +those contents. + # Boxes `Box` is Rust's 'boxed pointer' type. Boxes provide the simplest form of