c++-concepts相关内容

禁用带有概念的非模板化方法

是否存在限制非模板化方法的语法?我在使用clang concept branch和gcc的Godbolt上尝试过的所有语法都无法编译: //这些示例不编译模板结构X{需要B无效的foo(){}};模板结构Y{要求(std :: is_trivially_copyable_v)自动foo(){}}; 使其编译的技巧与使用SFINAE所需的技巧相同, ..
发布时间:2021-04-19 20:03:17 C/C++开发

如何定义一个递归概念?

cppreference.com 指出: 概念不能递归引用自己 但是我们如何定义一个表示整数或整数向量或整数向量的概念,等等. 我可以吃点东西 模板概念布尔IInt0 = std :: is_integral_v概念布尔IInt1 = IInt0||require(Type tt){{* std :: beg ..
发布时间:2021-04-19 19:26:00 C/C++开发

C ++部分概念ID:显式模板规范顺序/第一个参数的特殊状态的原因是什么?

我开始尝试概念的C ++ 20功能,当我意识到可以部分显式提供概念的模板参数时,我感到非常高兴.我阅读了cppreference文章,但没有找到那里提到的内容. 但是后来我意识到了一个奇怪的事情:模板参数的指定顺序与我所期望的相反.提供一个显式模板参数时,它将替换模板列表中的第二个模板: #include#include///为了推断是否 ..
发布时间:2021-04-19 19:04:20 C/C++开发

要求约束必须评估为布尔。所以没有SFINAE

我对“原子约束”一章很好奇, https:// en。 cppreference.com/w/cpp/language/constraints 说 取代后的E的类型必须完全是bool。不允许转换 和 f(0); //错误:检查#1, 时S {}没有bool类型,即使#2更匹配 哎呀。这意味着在使用require子句时没有 SFINAE机制吗?是 ..
发布时间:2020-09-28 03:08:52 C/C++开发

无法推断概念中的占位符类型

我正在尝试使用GCC 8中的Concepts TS复制标准C ++ 20概念,以便在标准库中可用它们之前就可以使用它们。我主要复制了最新草案中的所有内容,然后遇到了一个问题: #include #include // [concept.same] template conce ..
发布时间:2020-09-28 03:05:27 C/C++开发