following-conventions
C++ coding conventions. Use when editing .cpp/.hpp files or asking about C++ style.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
C++ Coding Conventions
Tooling
Use clang-format for formatting and clang-tidy for linting. The .clang-format
and .clang-tidy files in the repository root are authoritative—run the tools
and trust the output.
Style Conventions
These are not enforced by tooling:
-
West const:
const T¬T const& -
Prefer
auto: Use almost-always-auto, make conversions explicit (e.g.,auto x = int64_t{0}) - Vertical whitespace: Avoid blank lines within functions. Use comments to separate logical blocks instead.
- Naming: See naming.md
File Organization
- Headers:
.hpp, implementation:.cpp - Forward declarations:
<module>/fwd.hpp - Use
#pragma once—no manual include guards
Classes
Member order:
-
public, thenprotected, thenprivate - Within each: constructors, operators, mutating members, accessors
Rules:
- Mark single-argument constructors
explicit - Use
explicit(false)when implicit conversion is intentional - Follow the rule of zero or rule of five
- Declare move operations
noexcept - Use
structfor simple data aggregates where the public members are the API
Template Metaprogramming
- Use
classfor template parameters;typenameonly for dependent types - Name parameters
T, packsTs, argumentsx, packsxs - Provide
*_tand*_vhelpers for traits
Comments
-
FIXME:for bugs,TODO:for improvements (colon required) - Doxygen:
///with Markdown—do not use@param,@returns,@pre,@post
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!