c++-concepts相关内容

模板化的require-expression

我想要C ++ 20中的 Functor 概念。 函子是一种可以映射的较高类型的函数。一个简单的例子是 std :: optional ;。并具有 A 类型和 B 类型的函数以及 std :: optional ,您可以通过将函数应用于值(如果存在)并返回空的 std :: optional $ c>可选否则。此操作在Haskell中称为 fmap 。 templat ..
发布时间:2020-09-28 02:51:12 C/C++开发

在哪些访问控制上下文中评估了概念?

该问题是对此一个 [temp.concept] / 5 说: 未实例化概念([temp.spec])。 [注:表示概念专业化的id表达式被评估为表达式([expr.prim.id])。 [...]] 因此,由于可访问性,命名概念专门化的表达式可能具有不同的值。 如果是这种情况,我想知道在哪种情况下可以对表达式进行评估: 概念定义的上下文; 表达式的上下文; ..
发布时间:2020-09-28 02:50:51 C/C++开发

像`declval`这样的概念

在使用模板并使用 decltype 时,即使您没有时间,也经常需要某种类型的实例。在这种情况下, std :: declval()非常有用。这会创建一个 T 类型的假想实例。 概念是否存在类似的东西? 让我给你举个例子(有点做作,但应该达到目的): 让我们定义一个概念递增 template 概念增量= require(T t){ {+ ..
发布时间:2020-09-28 02:48:24 C/C++开发

Concepts TS中是否有预定义的概念?

“ Concepts lite”已被接受为TS,并且(示例实现)已合并到GCC主分支中,因此后续问题是是否预定义了任何概念(例如可排序或 Random_access_range )? 在哪里可以找到这样的预定义概念? 是 cppreference.com上的列表详尽无遗的清单? 我可以将它们与最新的GCC树干版本一起使用吗? 编辑1 :由于概念没有被C ++ 17接受,因此 ..
发布时间:2020-09-28 02:37:32 C/C++开发

C ++概念:我可以定义一个本身就是模板的概念吗?

很抱歉,这个问题不太清楚。我不确定用它表达短语的最佳方法(随时可以编辑!)。我认为一个例子将是最清楚的: 我正在尝试基于 Haskell定义。绑定运算符(> == )要求类型为 A Monad / code>可以绑定到接受 A 并返回 Monad 类型的函数。 c $ c> B 。我可以使用 value_type typedef来定义 A ,但是如何定义 B 是我的概念? templ ..
发布时间:2020-09-28 02:32:41 C/C++开发

什么是C ++技术规范?

Concepts-lite C ++(建议N3701)功能未包含在C ++ 1y标准中,但据说它将作为技术规范发布。这到底是什么意思? 解决方案 我通常不喜欢复制粘贴的答案,但是我通常会自动将其成为下一个C ++版本的标准功能吗?认为此处解释得很好: 从2012年开始,委员会已转换为“脱钩”的 模式,该模型的主要工作独立于 标准本身而进行,并且可以以 技术规范的形式异步交付(T ..
发布时间:2020-09-28 01:17:18 C/C++开发

为什么我们需要需求?

C ++ 20概念的一个角落是,在某些情况下,您必须编写 requires require 。例如,此示例来自 [expr.prim.req] / 3 : requires-expression 也可以用于 requires-clause >([temp])作为对模板参数(例如以下参数)编写临时约束的一种方式: template ..
发布时间:2020-09-27 00:30:10 C/C++开发