rules/cpp/patterns.md
This file extends common/patterns.md with C++ specific content.
Tie resource lifetime to object lifetime:
class FileHandle {
public:
explicit FileHandle(const std::string& path) : file_(std::fopen(path.c_str(), "r")) {}
~FileHandle() { if (file_) std::fclose(file_); }
FileHandle(const FileHandle&) = delete;
FileHandle& operator=(const FileHandle&) = delete;
private:
std::FILE* file_;
};
const&std::optional for values that may not existstd::expected (C++23) or result types for expected failuresSee skill: cpp-coding-standards for comprehensive C++ patterns and anti-patterns.