cpp-idioms

cpp-idioms is a skill for Claude Code, Codex from irahardianto/awesome-agv. It costs 63 tokens per session (2,113 once invoked), scanned A, original, MIT.

A guide to modern C++ programming patterns for versions 17, 20, and 23. It emphasizes safe resource ownership, value-based code, smart pointers, and efficient use of the type system.

In plain words
What is it for?
Use it when writing or reviewing C++ code involving object ownership, resource cleanup, move operations, smart pointers, or class design.
Why use it?
It reduces memory-management mistakes and makes C++ code safer, more predictable, and easier to maintain.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

Good fit Use it when writing or reviewing C++ code involving object ownership, resource cleanup, move operations, smart pointers, or class design.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/irahardianto/awesome-agv/cpp-idioms
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add irahardianto/awesome-agv --skill cpp-idioms
Clone the repo
git clone --depth 1 https://github.com/irahardianto/awesome-agv

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cpp-idioms

README.md
[![agentmods](https://agentmods.dev/badge/skills/irahardianto/awesome-agv/cpp-idioms/github.svg)](https://agentmods.dev/skills/irahardianto/awesome-agv/cpp-idioms)
Your own site
<a href="https://agentmods.dev/skills/irahardianto/awesome-agv/cpp-idioms"><img src="https://agentmods.dev/badge/skills/irahardianto/awesome-agv/cpp-idioms/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cpp-idioms

Your own site · 80×15
<a href="https://agentmods.dev/skills/irahardianto/awesome-agv/cpp-idioms"><img src="https://agentmods.dev/badge/skills/irahardianto/awesome-agv/cpp-idioms.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 63 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,113 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00063 $0.02113
Opus 5.5 $0.00025 $0.00845
Sonnet 5.5 $0.00013 $0.00423
Haiku 4.5 $0.00006 $0.00211

Measured 26d ago against content hash 7f334044aca5, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cpp-idioms scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 26d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/cpp-idioms/SKILL.md · 258 lines

How it starts

The opening of the file, as written. The whole thing — 258 lines — stays where its author put it; the contents beside it link to each section on GitHub.

C++ Idioms and Patterns

Modern C++ (17/20/23) rewards RAII, value semantics, and zero-cost abstractions. Lean into the type system and smart pointers. Idiomatic C++ = safe, deterministic, performant.

Scope: C++ coding idioms. Test naming: .agents/rules/testing-strategy.md.

Ownership and Memory

  1. RAII — resources tied to object lifetime. No manual new/delete.

  2. std::unique_ptr for exclusive ownership, std::shared_ptr only when sharing is necessary.

  3. Move semantics — prefer moving over copying for expensive types.

  4. Rule of Five/Zero:

    // ✅ Rule of Zero — let compiler-generated defaults work
    class TaskService {
        std::unique_ptr<TaskStorage> storage_;
        std::shared_ptr<Logger> logger_;
    public:
        // No destructor, copy/move constructors needed — smart pointers handle it
        explicit TaskService(std::unique_ptr<TaskStorage> storage, std::shared_ptr<Logger> logger)
            : storage_(std::move(storage)), logger_(std::move(logger)) {}
    };
    
    // ✅ Rule of Five — when managing raw resources (rare)
    class Buffer {
        char* data_;
        size_t size_;
    public:
        ~Buffer();                                   // Destructor
        Buffer(const Buffer&);                       // Copy constructor
        Buffer& operator=(const Buffer&);            // Copy assignment
        Buffer(Buffer&&) noexcept;                   // Move constructor
        Buffer& operator=(Buffer&&) noexcept;        // Move assignment
    };
    
  5. Pass by value and move for sink parameters:

    // ✅ Sink parameter — takes ownership
    void addTask(Task task) {
        tasks_.push_back(std::move(task));
    }
    
    // ✅ Read-only — const reference
    void printTask(const Task& task);
    
    // ❌ Never pass smart pointers unless transferring ownership
    void processTask(std::shared_ptr<Task> task);  // Unnecessary ref-count bump
    
    // ✅ If function doesn't need ownership
    void processTask(const Task& task);
    

Read the full file on GitHub · 258 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 26d ago Changed · -2 lines · +63 tokens per session 7f334044aca5
  2. 1mo ago First seen · 260 lines · 0 tokens per session scan A 6520119de50f

Subscribe to this mod's changes

cpp-idioms is a skill published in the GitHub repository irahardianto/awesome-agv (156 stars, last pushed 9d ago), licensed MIT. It adds 63 tokens to every session and 2,113 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dart-language

Dart 3.x language feature standards: null safety, records, sealed classes, switch pattern matching, extensions, and async/await. Use when using !, ?., ??, late, sealed classes, record types, switch expressions, or async patterns — and before introducing any new Dart 3.x construct to confirm the modern idiomatic…

HoangNguyen0403/agent-skills-standard · 73 tokens

typescript-language

Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.

HoangNguyen0403/agent-skills-standard · 35 tokens

android-navigation-3

Install and migrate to Jetpack Navigation 3. Use when implementing Navigation 3 patterns including NavDisplay, NavKey routes, deep links, multiple backstacks, scenes (dialogs, bottom sheets), or migrating from Navigation 2.

HoangNguyen0403/agent-skills-standard · 52 tokens

JavaScript Language Patterns

Modern JavaScript (ES2022+) patterns for clean, maintainable code.

HoangNguyen0403/agent-skills-standard · 21 tokens

dart-best-practices

Dart code quality conventions: naming, const/final/var hierarchy, single quotes, trailing commas, collection idioms, tear-offs, and import organization. Use only for Dart style-focused changes or reviews; never activate for configuration-only lint setup, unrelated feature work, or widget tests.

HoangNguyen0403/agent-skills-standard · 64 tokens

dart-tooling

Dart static analysis, linting, formatting, and code-generation standards. Use only for analysisoptions.yaml, buildrunner, dart format, DCM, lefthook, or analyze/format CI failures; defer Dart language, null-safety, Flutter tests, and generic CI questions.

HoangNguyen0403/agent-skills-standard · 62 tokens