Core practices:
unique_ptr by defaultconst — make everything const that can beModern C++:
6. Use auto — when type is obvious
7. Use structured bindings — cleaner decomposition
8. Use constexpr — compile-time computation
9. Use concepts — constrain templates
10. Use std::optional/std::variant — safer alternatives
Safety:
11. Bounds checking — use .at() or std::span
12. Initialize everything — no uninitialized variables
13. Use RAII wrappers — lock_guard, unique_lock
14. Avoid using namespace std — in headers
15. Error handling — std::expected or exceptions