mcpp-style-ref
为 mcpp 项目应用 Modern/Module C++ (C++23) 编码风格。适用于编写或审查带模块的 C++ 代码、命名标识符、组织 .cppm/.cpp 文件,或用户提及 mcpp、module C++、现代 C++ 风格时。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
为 mcpp 项目应用 Modern/Module C++ (C++23) 编码风格。适用于编写或审查带模块的 C++ 代码、命名标识符、组织 .cppm/.cpp 文件,或用户提及 mcpp、module C++、现代 C++ 风格时。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Find, add and publish mcpp packages through mcpp-index (the default package index). Use when looking up a dependency, resolving a "package not found" error, choosing a namespace, or publishing this library to the index.
Use the mcpp build tool for C++23 module projects — commands (build/test/run/add/new/publish), mcpp.toml fields, project conventions, and shipping templates/. Use when building, testing, adding dependencies, editing mcpp.toml, or scaffolding with mcpp.
Navigation for mcpp/mcpplibs module-library development — where to look things up in this repository and upstream. Use when an agent needs the mcpp tool, mcpp.toml, the package index, the mcpplibs ecosystem, reference libraries, the xlings tool environment, or more external links.
SOC 職業分類に基づく
| name | mcpp-style-ref |
| description | 为 mcpp 项目应用 Modern/Module C++ (C++23) 编码风格。适用于编写或审查带模块的 C++ 代码、命名标识符、组织 .cppm/.cpp 文件,或用户提及 mcpp、module C++、现代 C++ 风格时。 |
mcpp 项目的 Modern/Module C++ 风格参考。C++23,使用 import std。
| 种类 | 风格 | 示例 |
|---|---|---|
| 类型/类 | PascalCase(大驼峰) | StyleRef, HttpServer |
| 对象/成员 | camelCase(小驼峰) | fileName, configText |
| 函数 | snake_case(下划线) | load_config_file(), parse_() |
| 私有 | _ 后缀 | fileName_, parse_() |
| 常量 | UPPER_SNAKE | MAX_SIZE, DEFAULT_TIMEOUT |
| 全局 | g 前缀 | gStyleRef |
| 命名空间 | 全小写 | mcpplibs, mylib |
import std 替代 #include <print> 和 #include <xxx>.cppm 作为模块接口;分离实现时用 .cppexport module module_name; — 模块声明export import :partition; — 导出分区import :partition; — 内部分区(不导出)// .cppm
export module a;
export import a.b;
export import :a2; // 可导出分区
import std;
import :a1; // 内部分区
topdir.subdir.filename(如 a.b, a.c)module_name:partition(如 a:a1, a.b:b1)a/c.cppm → a.c,b/c.cppm → b.cclass StyleRef {
private:
std::string fileName_; // 数据成员带 _ 后缀
public: // Big Five
StyleRef() = default;
StyleRef(const StyleRef&) = default;
// ...
public: // 公有接口
void load_config_file(std::string fileName); // 函数 snake_case,参数 camelCase
private:
void parse_(std::string config); // 私有函数以 _ 结尾
};
{} — int n { 42 },std::vector<int> v { 1, 2, 3 }std::string_viewstd::optional / std::expected 替代 int 错误码std::unique_ptr、std::shared_ptr;避免裸 new/deleteconstexpr、inline、concept 替代宏两种写法均支持。
写法 A:合并 — 接口与实现同在一个 .cppm 中:
// mylib.cppm
export module mylib;
export int add(int a, int b) {
return a + b;
}
写法 B:分离 — 接口在 .cppm,实现在 .cpp(编译期隐藏实现):
// error.cppm(接口)
export module error;
export struct Error {
void test();
};
// error.cpp(实现)
module error;
import std;
void Error::test() {
std::println("Hello");
}
简单模块用写法 A;需隐藏实现或减少编译依赖时用写法 B。
安装 xlings 包管理器后,安装本模板声明的 mcpp 工具:
curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/refs/heads/main/tools/other/quick_install.sh | bash
irm https://raw.githubusercontent.com/openxlings/xlings/refs/heads/main/tools/other/quick_install.ps1 | iex
然后安装本模板声明的项目工具:
xlings install
export PATH="$PWD/.xlings/subos/_/bin:$PATH"
mcpp --version
xlings详细信息可参考 xlings 文档。
参考本仓库 src/ 目录结构:
.xlings.json:声明项目工具环境mcpp.toml:声明 [package] 与测试依赖;简单库目标可由 mcpp 从 src/*.cppm 自动推断src/mylib.cppm:库主模块接口,默认 export module mcpplibs.mylib;tests/mylib_test.cpp:mcpp test 自动发现的 gtest 测试;不要定义 main()examples/basic/:独立 mcpp consumer 包,通过 path 依赖引用根库构建:
mcpp build
mcpp test
cd examples/basic && mcpp run
.cppm、.cpp)