专业的编程技术博客社区

网站首页 > 博客文章 正文

C++核心指南(15) I.9 在模板接口中使用concept

baijin 2024-10-12 02:09:00 博客文章 11 ℃ 0 评论

I.9: 如果接口是模板,则使用concept文档化其参数

原因

精确地指定接口,(不远的)将来在编译时进行检查。

示例

使用ISO Concepts TS(Technical Specifications)风格的需求规范(译注:Concepts并未出现在C++17的标准中,而只是作为技术规范来补充C++17),例如

template
// requires InputIterator && EqualityComparable>, Val>
Iter find(Iter first, Iter last, Val v)
{
 // ...
}

Note

不久的将来(可能在2018年),一旦//被移除,大部分的编译都具备检查requirers的能力。Concepts在GCC 6.1或更新的版本中已经支持(译注:公开的资料显示,仅在这一个公开发行的GCC版本中存在过)。

参见: 泛型编程 and concepts.

实施

还不能强制执行,该语言工具(Concepts)只还在规范中,当工具可用时,如果任何非可变参数不受某个概念(Concept)的约束则发出警告。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表