cpp-basics

A set of Chinese-language rules for modern C++ development, covering project structure, CMake layouts, headers, testing, and high-performance software practices.

In plain words
What is it for?
Use it when creating or reviewing C++ projects that use CMake, tests, benchmarks, dependency tools, formatting, or static analysis.
Why use it?
It gives C++ projects consistent guidance for organizing and building code across systems such as games, embedded devices, and scientific software.

Cursor rule for Cursor

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.

agentmods
npx agentmods add rules/wangqiqi/cursor-ai-rules/cpp-basics
Clone the repo
git clone --depth 1 https://github.com/wangqiqi/cursor-ai-rules

Made for: Cursor.

Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 1,862 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00000 $0.01862
Opus 5 $0.00000 $0.00931
Sonnet 5 $0.00000 $0.00372
Haiku 4.5 $0.00000 $0.00186

Measured 2d ago against content hash b855a25050ec, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

cpp-basics 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 2d 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.

.cursor/rules/tech/cpp-basics.mdc · 283 lines

How it starts

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

🚀 C++ 开发规则

版本: v4.3.0 | 最后更新: 2026-01-22 | 作者: Cursor AI Rules

🎯 适用场景

  • 高性能系统编程和底层开发
  • 游戏引擎和实时图形应用
  • 嵌入式系统和物联网设备
  • 高频交易和金融系统
  • 科学计算和数值模拟
  • 跨平台桌面应用开发

🏗️ 项目结构

现代CMake项目布局

modern_cpp_project/
├── CMakeLists.txt              # 主CMake配置
├── cmake/                      # CMake模块
│   ├── CompilerWarnings.cmake
│   └── Conan.cmake
├── src/                        # 源代码
│   ├── main.cpp
│   ├── core/                   # 核心模块
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   ├── core.h
│   │   │   └── types.h
│   │   └── src/
│   │       ├── core.cpp
│   │       └── types.cpp
│   └── utils/                  # 工具模块
├── tests/                      # 测试
│   ├── CMakeLists.txt
│   ├── main.cpp
│   └── core/
│       └── test_core.cpp
├── benchmarks/                 # 性能测试
├── examples/                   # 示例代码
├── docs/                       # 文档
├── conanfile.txt              # Conan依赖
├── .clang-format              # 代码格式化配置
├── .clang-tidy               # 静态分析配置
└── README.md

头文件组织

include/project_name/
├── core/                       # 核心功能头文件
│   ├── config.h               # 配置宏
│   ├── types.h                # 类型定义
│   └── interfaces/            # 接口定义
├── algorithms/                # 算法相关
├── containers/                # 容器实现
└── utilities/                 # 工具函数

📝 编码规范

现代C++特性使用 (C++11/14)

#include <iostream>
#include <memory>
#include <vector>
#include <string>
#include <functional>

// ✅ 推荐:使用智能指针和RAII
class FileHandler {
private:
    std::unique_ptr<std::FILE, std::function<void(std::FILE*)>> file_;

public:
    explicit FileHandler(const std::string& path)
        : file_(std::fopen(path.c_str(), "r"),
                [](std::FILE* f) { if (f) std::fclose(f); }) {
        if (!file_) {
            throw std::runtime_error("Failed to open file");
        }
    }

    // 使用const std::string&避免字符串拷贝
    void processLine(const std::string& line) {
        std::cout << "Processing: " << line << std::endl;
    }
};

// ✅ 推荐:使用auto和范围for
boost::optional<std::string> findUser(const std::vector<User>& users,
                                    const std::string& name) {
    for (const auto& user : users) {
        if (user.name == name) {
            return user.email;
        }
    }
    return boost::none;
}

// ✅ 推荐:使用constexpr进行编译时计算
constexpr int fibonacci(int n) {
    return (n <= 1) ? n : fibonacci(n - 1) + fibonacci(n - 2);
}

Read the full file on GitHub · 283 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. 2d ago First seen · 283 lines · 0 tokens per session scan A b855a25050ec

Subscribe to this mod's changes

cpp-basics is a cursor rule published in the GitHub repository wangqiqi/cursor-ai-rules (15 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,862 tokens. 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.