К основному содержанию
правило

cpp-programming-guidelines-cursorrules-prompt-file: правило Cursor

Набор стандартов C++ для ИИ в Cursor. Задаёт лимиты на размер функций и классов, правила именования, RAII и структуру каталогов с CMake.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/cpp-programming-guidelines-cursorrules-prompt-file.mdc
Открыть на GitHub

Что делает cpp-programming-guidelines-cursorrules-prompt-file

Правило настраивает генерацию кода на C++ под строгие гайдлайны. Для функций задан предел до 20 инструкций, а для классов — до 200 инструкций, 10 публичных методов и 10 свойств. ИИ обязуется избегать сырых указателей в пользу std::unique_ptr и std::shared_ptr, применять RAII и возвращать std::optional или std::expected при ожидаемых ошибках вместо исключений.

В правиле прописана структура проекта: разделение на каталоги include/, src/, test/, lib/ и doc/, сборка через CMake и разбивка логики по пространствам имён core и utils. Для именования используется PascalCase в классах, camelCase в методах и snake_case для названий файлов.

Правило запрещает пустые строки внутри тел функций, поэтому сгенерированный код получается плотным.

Какие задачи решает

  • ограничить размер методов двадцатью инструкциями
  • заставить агента использовать умные указатели вместо сырых
  • выстроить структуру проекта с папками src/, include/ и test/
  • стандартизировать тесты по шаблону Arrange-Act-Assert

Примеры запросов агенту

  • Спроектируй класс сетевого клиента по правилу, используя умные указатели и методы короче 20 строк.
  • Напиши юнит-тест для парсера конфигурации по схеме Arrange-Act-Assert.
  • Разбей этот модуль на заголовочный файл в include/ и реализацию в src/.

Как установить cpp-programming-guidelines-cursorrules-prompt-file

Вручную: положить файлы

.cursor/rules/cpp-programming-guidelines-cursorrules-prompt-file.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о cpp-programming-guidelines-cursorrules-prompt-file

Как установить cpp-programming-guidelines-cursorrules-prompt-file в Cursor?

Сохраните файл правил по пути .cursor/rules/cpp-programming-guidelines-cursorrules-prompt-file.mdc.

Что делает cpp-programming-guidelines-cursorrules-prompt-file?

Оно задаёт правила генерации современного C++: требует применять RAII, умные указатели, разделять объявления и реализацию, а также соблюдать ограничения на длину функций.

Какие ограничения по размеру классов задаёт конфигурация?

Класс должен содержать меньше 200 инструкций, не более 10 публичных методов и не более 10 свойств.

Исходный текст

cpp-programming-guidelines-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for C++ development with programming guidelines integration."
globs: **/*
alwaysApply: false
---
# C++ Programming Guidelines

## Basic Principles

- Use English for all code and documentation.
- Always declare the type of each variable and function (parameters and return value).
- Create necessary types and classes.
- Use Doxygen style comments to document public classes and methods.
- Don't leave blank lines within a function.
- Follow the one-definition rule (ODR).

## Nomenclature

- Use PascalCase for classes and structures.
- Use camelCase for variables, functions, and methods.
- Use ALL_CAPS for constants and macros.
- Use snake_case for file and directory names.
- Use UPPERCASE for environment variables.
- Avoid magic numbers and define constants.
- Start each function with a verb.
- Use verbs for boolean variables. Example: isLoading, hasError, canDelete, etc.
- Use complete words instead of abbreviations and ensure correct spelling.
  - Except for standard abbreviations like API, URL, etc.
  - Except for well-known abbreviations:
    - i, j, k for loops
    - err for errors
    - ctx for contexts
    - req, res for request/response parameters

## Functions

- Write short functions with a single purpose. Less than 20 instructions.
- Name functions with a verb and something else.
- If it returns a boolean, use isX or hasX, canX, etc.
- If it doesn't return anything (void), use executeX or saveX, etc.
- Avoid nesting blocks by:
  - Early checks and returns.
  - Extraction to utility functions.
- Use standard library algorithms (std::for_each, std::transform, std::find, etc.) to avoid function nesting.
- Use lambda functions for simple operations.
- Use named functions for non-simple operations.
- Use default parameter values instead of checking for null or nullptr.
- Reduce function parameters using structs or classes
  - Use an object to pass multiple parameters.
  - Use an object to return multiple results.
  - Declare necessary types for input arguments and output.
- Use a single level of abstraction.

## Data

- Don't abuse primitive types and encapsulate data in composite types.
- Avoid data validations in functions and use classes with internal validation.
- Prefer immutability for data.
- Use const for data that doesn't change.
- Use constexpr for compile-time constants.
- Use std::optional for possibly null values.

## Classes

- Follow SOLID principles.
- Prefer composition over inheritance.
- Declare interfaces as abstract classes or concepts.
- Write small classes with a single purpose.
  - Less than 200 instructions.
  - Less than 10 public methods.
  - Less than 10 properties.
- Use the Rule of Five (or Rule of Zero) for resource management.
- Make member variables private and provide getters/setters where necessary.
- Use const-correctness for member functions.

## Exceptions

- Use exceptions to handle errors you don't expect.
- If you catch an exception, it should be to:
  - Fix an expected problem.
  - Add context.
  - Otherwise, use a global handler.
- Use std::optional, std::expected, or error codes for expected failures.

## Memory Management

- Prefer smart pointers (std::unique_ptr, std::shared_ptr) over raw pointers.
- Use RAII (Resource Acquisition Is Initialization) principles.
- Avoid memory leaks by proper resource management.
- Use std::vector and other standard containers instead of C-style arrays.

## Testing

- Follow the Arrange-Act-Assert convention for tests.
- Name test variables clearly.
- Follow the convention: inputX, mockX, actualX, expectedX, etc.
- Write unit tests for each public function.
- Use test doubles to simulate dependencies.
  - Except for third-party dependencies that are not expensive to execute.
- Write integration tests for each module.
- Follow the Given-When-Then convention.

## Project Structure

- Use modular architecture
- Organize code into logical directories:
  - include/ for header files
  - src/ for source files
  - test/ for test files
  - lib/ for libraries
  - doc/ for documentation
- Use CMake or similar build system.
- Separate interface (.h) from implementation (.cpp).
- Use namespaces to organize code logically.
- Create a core namespace for foundational components.
- Create a utils namespace for utility functions.

## Standard Library

- Use the C++ Standard Library whenever possible.
- Prefer std::string over C-style strings.
- Use std::vector, std::map, std::unordered_map, etc. for collections.
- Use std::optional, std::variant, std::any for modern type safety.
- Use std::filesystem for file operations.
- Use std::chrono for time-related operations.

## Concurrency

- Use std::thread, std::mutex, std::lock_guard for thread safety.
- Prefer task-based parallelism over thread-based parallelism.
- Use std::atomic for atomic operations.
- Avoid data races by proper synchronization.
- Use thread-safe data structures when necessary.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Все правила IDE по теме «Языки программирования» →
winui3 официальный github Правило задаёт рекомендации для WinUI 3 и Windows App SDK: от XAML и потоков до окон и MVVM. Пригодится, чтобы Copilot учитывал особенности настольных приложений Windows. ★ 40 451звёзд репо vue официальный github Правило задаёт Copilot стандарты Vue 3: Composition API, <script setup>, реактивность, Pinia и Vue Router. Пригодится, когда агент пишет компоненты в вашем стиле. ★ 40 451звёзд репо vsixtoolkit официальный github Направляет GitHub Copilot при создании расширений VSIX через библиотеку Community.VisualStudio.Toolkit. Задаёт совместимость с .NET Framework 4.8 и правила потоков. ★ 40 451звёзд репо tanstack-start-shadcn-tailwind официальный github Правило задаёт Copilot стек TanStack Start, Shadcn/ui и Tailwind CSS и требует валидировать внешние данные через Zod. ★ 40 451звёзд репо swift-mcp-server официальный github Правило задаёт Copilot шаблоны для сборки MCP-серверов на Swift через официальный SDK: инструменты, ресурсы, промпты и транспорты. ★ 40 451звёзд репо svelte официальный github Направляет GitHub Copilot на стандарты Svelte 5 и SvelteKit 2: руны вместо старых сторов, типизация компонентов и безопасная работа с SSR. ★ 40 451звёзд репо

Из того же набора140

cursorrules-cursor-ai-wordpress-draft-macos-prompt Правило Cursor, которое описывает проект PressThat: системный трей-апп для WordPress, создающий черновики записей. Пригодится, если вы ведёте этот проект в Cursor. ★ 41 024звёзд репо cursorrules-cursor-ai-nextjs-14-tailwind-seo-setup Набор инструкций для Cursor по вёрстке компонентов Next.js 14 со стилями Tailwind CSS и настройкой SEO. Помогает генерировать код App Router из скриншотов дизайна. ★ 41 024звёзд репо cursor-rules-pack-v2-cursorrules-prompt-file Набор из 7 правил для Cursor: зависимости, ошибки, состояние, вебхуки и запросы к базе данных. Подходит для проверки решений агента при работе с кодом. ★ 41 024звёзд репо cursor-ai-react-typescript-shadcn-ui-cursorrules-p Правило для Cursor, которое настраивает агента писать на React и TypeScript так, как принято в проектах с shadcn/ui и Tailwind CSS. ★ 41 024звёзд репо convex-cursorrules-prompt-file Правило задаёт для Cursor соглашения по Convex: синтаксис функций, HTTP-маршруты и валидаторы. Пригодится для проектов с Convex. ★ 41 024звёзд репо code-style-consistency-cursorrules-prompt-file Правило заставляет агента сначала изучить стиль проекта, а потом писать код под него. Пригодится, когда в репозитории уже есть свои конвенции. ★ 41 024звёзд репо code-pair-interviews Правило настраивает Cursor на стиль парного собеседования: требует составлять план решения, писать читаемый код с понятными именами и проверять граничные случаи. ★ 41 024звёзд репо code-guidelines-cursorrules-prompt-file Правило задаёт Cursor порядок работы с кодом: проверять факты, сохранять существующую структуру и учитывать тесты, безопасность и совместимость. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой