feat: implement CPP09 C++20 card
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Odpowiedzi — CPP09
|
||||
|
||||
Zapewnić zwolnienie zasobu przez strukturę programu, także przy wczesnym return.
|
||||
|
||||
## Task01 — Uchwyt jako obiekt
|
||||
|
||||
Zwiąż stan otwarcia uchwytu z konstruktorem i destruktorem.
|
||||
|
||||
Oczekiwany stdout: `acquire / open=1 / release / open=0`.
|
||||
|
||||
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 — Wczesny return
|
||||
|
||||
Potwierdź zwolnienie strażnika przy wyjściu z funkcji przed jej końcem.
|
||||
|
||||
Oczekiwany stdout: `acquire / work=short / release / after`.
|
||||
|
||||
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 — Zagnieżdżone zasoby
|
||||
|
||||
Sprawdź zwalnianie zagnieżdżonych zasobów w odwrotnej kolejności.
|
||||
|
||||
Oczekiwany stdout: `acquire=A / acquire=B / inside / release=B / release=A`.
|
||||
|
||||
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