【发布时间】:2015-11-07 20:17:02
【问题描述】:
有什么方法可以将一般的 requires 子句应用于 lambda 仿函数的参数?
假设我有两个约束C1 和C2,我想检查一个参数。由于函数允许使用类似的语法,因此我希望以下内容可以工作:
[](auto x) requires C1<decltype(x)> && C2<decltype(x)> {
// ...
}
但是这个won't compile 使用 GCC 6
【问题讨论】:
-
你为什么不写一个普通的函子?
-
Concepts TS 不会修改 lambda 的语法,所以我认为不可能将 requires 子句附加到 lambda。通过改变 simple-type-specifier 的定义,它允许使用 constrained-type-specifiers 作为参数。
标签: c++ c++11 c++17 c++-concepts