Files
antigravity-skills-reference/skills/cpp-pro/resources/implementation-playbook.md
Champbreed 83e5aaa9bb fix: restore missing cpp-pro reference documentation (Issue #382) (#383)
* fix: restore missing cpp-pro reference documentation (Issue #382)

* docs: restore implementation-playbook with idiomatic C++ patterns

* Update implementation-playbook.md

* Update implementation-playbook.md
2026-03-23 18:55:53 +01:00

44 lines
1.2 KiB
Markdown

# C++ Implementation Playbook
**Date:** March 23, 2026
**Author:** champbreed
---
## 1. RAII & Resource Management
Always wrap raw resources in manager objects to ensure cleanup on scope exit.
```cpp
// Good: Scope-bound cleanup
void process() {
auto data = std::make_unique<uint8_t[]>(1024);
// memory is freed automatically
}
```
## 2. Smart Pointer Ownership
- **unique_ptr**: Use for exclusive ownership.
- **shared_ptr**: Use for shared ownership across components.
- **weak_ptr**: Use to break circular reference cycles.
## 3. Concurrency Safety
Always use RAII-style locks like `std::lock_guard` or `std::unique_lock`.
```cpp
void update() {
std::lock_guard<std::mutex> lock(mutex_); // Released automatically
// thread-safe logic
}
```
## 4. Move Semantics & Efficiency
Avoid expensive copies by utilizing move constructors and `std::move`.
```cpp
void processData(std::vector<std::string>&& data) {
auto internalData = std::move(data); // Transfers ownership, no copy
}
```
## 5. Modern STL Algorithms
Prefer algorithms over manual loops for readability and optimization.
```cpp
void sortData(std::vector<int>& myVector) {
// Use std::ranges (C++20) for cleaner, safer iteration
std::ranges::sort(myVector);
}