首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C++20:多类型的概念及其约束,正确的语法?

C++20:多类型的概念及其约束,正确的语法?
EN

Stack Overflow用户
提问于 2019-07-11 08:21:35
回答 4查看 2.7K关注 0票数 22

已经确认,在即将到来的c++20标准中,根据最近Cologne ISO C++ Meeting中的this reddit report,我们将能够指定模板的,并且对于每个类/函数模板,我们将能够在其类型上设置。然而,在文档和教程(例如here)中,我找不到适用于多类型用例的正确语法。

假设我们有一个多类型的概念:

代码语言:javascript
复制
template<typename T1, typename T2>
concept AreEqComparable = requires(T1 a, T2 b) {
    { a == b } -> bool;
};

比方说,我想在两个不同类型之间定义一个简单的比较函数。我该怎么做呢?更具体地说,我应该在下面代码的???部分写什么:

代码语言:javascript
复制
???
bool are_equal(T1 a, T2 b) { return a == b; }

我在herehere,甚至here上都找不到任何关于这个案例的引用。我随机尝试了一些东西,比如:

代码语言:javascript
复制
/* 1 */ template<AreEqComparable T1, T2>
/* 2 */ AreEqComparable<T1, T2>
/* 3 */ template<AreEqComparable<T1, T2>>

但是它们都抛出了语法错误。我认为答案应该在Bjarne StroustrupP0557规范中的某个地方,但我很快就找不到了。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56980155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档