Hacker News | 📄 原文链接 | 2026-10-16 收录

C++26 契约:前置与后置条件入门 — Hacker News 中文摘要

来源:cppstories.com — 70 分 · by ibobev

📋 概述

文章从 cassert 出发,把「索引必须有效」这类要求从函数体里的断言搬到函数签名上:C++26 的契约特性(P2900)允许在参数列表后写 pre(...),声明与定义都能带上。与 assert 的差别有三点:要求写在声明里,读 API 的人不必再看实现;检查语义更灵活,可以选择忽略、报告违规后继续或直接终止程序;契约明确区分调用方必须满足的前置条件与函数承诺的后置条件,不必在函数体里手埋检查。文中还提醒了编译器选项与一些容易踩到的细节。

🔑 核心要点

💡 金句

We can put pre and post directly in the function declaration. This makes the requirements visible to anyone reading the API, without looking at the implementation.
← 返回 Hacker News 首页