Load when modernizing, migrating, or upgrading C++ code from older standards (C++98/03/11/14) to modern C++ (17/20/23), or when applying systematic code improvements that preserve behavior.
70
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill for C++ modernization, migration, and systematic refactoring.
Do not modernize code before preserving behavior.
Separate changes into:
Never mix safety-critical changes with large style rewrites.
-fno-exceptions or other constraints.| From | To | Risk |
|---|---|---|
Raw new/delete | RAII / smart pointers | Medium (classify ownership first) |
| Raw loops | Algorithms / ranges | Low (verify behavior) |
NULL | nullptr | Low |
typedef | using | Low |
| Manual resource management | RAII wrappers | Medium (check move semantics) |
| C-style arrays | std::array / std::vector | Medium (check sizeof, pointer arithmetic) |
boost::optional | std::optional | Low (check API compatibility) |
| SFINAE | Concepts | Low (C++20+) |
auto can hide surprising type deductions.std::string_view does not own — check lifetime.f7ba39e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.