C++20约束的一个要点是,在某些情况下,你必须写requires requires。例如,来自[expr.prim.req]/3的这个示例: 一个requires-expression也可以作为requires-clause([temp])中的一种方式,用于编写关于模板参数的临时约束,如...
我有一个CRTP课程。 template <typename T> class Wrapper { // ... }; 这是打算被推导出来的。 class Type : Wrapper<Type> { // ... }; 我想通过对模板参数 T 设置...
我不明白在嵌套模板中如何使用requires关键字。 下面的代码可以在最新版本的MSVC和gcc上编译(分别使用/std:c++latest和-std=c++2a)。 在这种情况下,requires是否被简单地丢弃了?我不应该这样使用吗? #include <type_traits...
在下面的示例中,第二个f函数重载的requires表达式的类型是std::integral_constant<bool,true>,它可以隐式转换为bool。 #include <type_traits> struct S { static constexp...
我有一个简单的模板类A。如果满足一些要求,我想要启用一个函数。 解决方案1 - requires子句 我尝试的第一个解决方案如下: template <class T> class A { public: void a(void) requires (same_as&...
g++乐意接受以下代码,而clang和msvc都无法匹配出线定义。 有任何想法为什么? template <bool B> struct test { test() requires (B); test() requires(!B); }; templa...