Files
lab-cpp-copy-move/README.md
T
2026-07-21 20:12:59 +02:00

36 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CPP10 — Kopiowanie, przenoszenie i Rule of Zero/Five
Karta 10/10 kursu **C++ · Rok 2 · Semestr 1**. Standard: C++20.
Oś merytoryczna: A Tour of C++ 3e: sekcje 6.26.4. Materiał książkowy jest parafrazowany;
repozytorium zawiera samodzielne eksperymenty i testy, a nie kopię książki.
## Taski
| Task | Temat | Dokładny dowód stdout |
| --- | --- | --- |
| Task01 | `Głęboka kopia` | `original=7 copy=9 distinct=1` |
| Task02 | `Przeniesienie własności` | `src_empty=1 value=42` |
| Task03 | `Rule of Zero` | `copy=alpha original=beta moved=alpha` |
Każdy task jest osobnym programem w `src/task0N`. Test kompiluje wszystkie
jednostki translacji poleceniem zgodnym z `-std=c++20 -Wall -Wextra
-Wpedantic -Werror`, uruchamia program i porównuje dokładny wynik.
## Uruchomienie
```bash
stemctl build native-amd64 cpp CPP10 1
stemctl test native-amd64 cpp CPP10 1
stemctl test native-amd64 cpp CPP10 2
stemctl debug native-amd64 cpp CPP10 3
```
Lokalnie można użyć `make build`, `make test TASK=task02` i
`make trace TASK=task03`. Ślad debuggera trafia do `.stem/artifacts`.
## Granica semestru
Ta seria nie uczy API RTOS, zaawansowanych kontenerów STL ani
współbieżności. Są to osobne bloki następnych semestrów opisanych w
`/home/user/dev/keys/cxx.md`.