是否有明确区分regular概念和semiregular概念的编程模型?
根据程序设计要素,regular概念有一个明确的数学定义。我认为semiregular概念(来自草案)是一个没有==比较器重载的常规概念。
ranges库使用半正则概念来实现它。但是,我不明白,如果一个是从另一个得到的,为什么这两者之间的区别是必要的。
发布于 2020-10-25 00:56:33
从本质上说,将模板限制在概念上就是宣称模板将自由地使用概念所需的任何表达式。如果您正在编写一个模板,根据正在实现的算法的性质,它不需要进行等式测试,那么就没有必要仅仅根据不想使用的表达式的生存力从该模板中排除一个类型。
并非每一种类型逻辑上都有平等测试的概念。这很好。但是在许多地方,除了等式测试之外,规则工具是有用的。因此,除了测试是否相等之外,还有一个关于类型的概念,它在所有方面都是规则的。
regular是“派生自”(包含在C++语言中) semiregular。regular被显式定义为semiregular和equality_comparable。
https://stackoverflow.com/questions/64519236
复制相似问题