feat: implement CPP07 C++20 card

This commit is contained in:
user
2026-07-21 20:11:42 +02:00
commit b9faa3cdab
36 changed files with 7620 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# CPP07 — Konstruktory, destruktory i inicjalizacja obiektu
Karta 07/10 kursu **C++ · Rok 2 · Semestr 1**. Standard: C++20.
Oś merytoryczna: A Tour of C++ 3e: rozdziały 5 i 6. 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 | `Kolejność konstrukcji` | `member / object / ready` |
| Task02 | `Destrukcja w odwrotnej kolejności` | `enter / construct=A / construct=B / destroy=B / destroy=A / leave` |
| Task03 | `Konstruktor delegujący` | `point=0,0 other=3,4` |
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 CPP07 1
stemctl test native-amd64 cpp CPP07 1
stemctl test native-amd64 cpp CPP07 2
stemctl debug native-amd64 cpp CPP07 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`.