Files
saselang-bible/examples/027-memoire-references-et-unsafe-examples.md
2026-09-13 21:59:15 +02:00

77 lines
1.6 KiB
Markdown

# Exemples / DO-DON'T — Chapitre 27 — Mémoire, références et `unsafe`
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
## Exemples extraits du chapitre
### Exemple 1
```text
value vs reference semantics
object allocation
moves/copies/clones
borrow/reference semantics si nécessaire
escape analysis
lifetimes internes
partial construction
partial destruction
cycles éventuels
resource ownership
thread-safety implications
```
### Exemple 2
```text
unsafe { ... }
unsafe func
unsafe method
unsafe clsmethod
unsafe construct
unsafe union
```
### Exemple 3
```text
unsafe variable
unsafe constant
unsafe field
```
### Exemple 4
```text
mot-clé mut pour obtenir la mutabilité normale
borrow checker visible dans la syntaxe
lifetimes utilisateur omniprésents
ownership annotations pour les usages ordinaires
```
## DO / DON'T / WHY / compiler error / edge cases
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
## Pointeurs — distinctions à préserver
```text
référence de classe
Slice<T>
pointeur Saselang
pointeur brut / FFI
function pointer
```
Les pointeurs explicites restent un sous-modèle mémoire dédié et ne remplacent pas les références/slices sûres dans le code ordinaire.
### Exemple — backing storage stable
```text
Vector<int32> values = ...;
Slice<int32> part = values::slice(0..<2);
values::reserve(1024); // une éventuelle relocalisation physique reste invisible
part[0]; // toujours valide
```