feat: implement CPP10 C++20 card
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Odpowiedzi — CPP10
|
||||
|
||||
Rozróżnić kopię od przeniesienia i wybrać Rule of Zero dla bezpiecznego typu zasobowego.
|
||||
|
||||
## Task01 — Głęboka kopia
|
||||
|
||||
Zaimplementuj kopię bufora tak, aby dwa obiekty nie współdzieliły jednej komórki.
|
||||
|
||||
Oczekiwany stdout: `original=7 copy=9 distinct=1`.
|
||||
|
||||
Pliki dowodu: `src/task01/main.cpp`.
|
||||
|
||||
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne `diff` z plikiem `tests/expected`.
|
||||
|
||||
## Task02 — Przeniesienie własności
|
||||
|
||||
Przenieś bufor move-only i pozostaw obiekt źródłowy w poprawnym stanie pustym.
|
||||
|
||||
Oczekiwany stdout: `src_empty=1 value=42`.
|
||||
|
||||
Pliki dowodu: `src/task02/main.cpp`.
|
||||
|
||||
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne `diff` z plikiem `tests/expected`.
|
||||
|
||||
## Task03 — Rule of Zero
|
||||
|
||||
Zbuduj typ z bezpiecznych składowych standardowych bez własnego destruktora i operacji copy/move.
|
||||
|
||||
Oczekiwany stdout: `copy=alpha original=beta moved=alpha`.
|
||||
|
||||
Pliki dowodu: `src/task03/main.cpp`.
|
||||
|
||||
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne `diff` z plikiem `tests/expected`.
|
||||
Reference in New Issue
Block a user