已经确认,在即将到来的c++20
标准中,根据最近Cologne ISO C++ Meeting中的this reddit report,我们将能够指定模板的,并且对于每个类/函数模板,我们将能够在其类型上设置。然而,在文档和教程(例如here)中,我找不到适用于多类型用例的正确语法。
假设我们有一个多类型的概念:
template<typename T1, typename T2>
concept AreEqComparable = requires(T1 a, T2 b) {
{ a == b } -> bool;
};
比方说,我想在两个不同类型之间定义一个简单的比较函数。我该怎么做呢?更具体地说,我应该在下面代码的???
部分写什么:
???
bool are_equal(T1 a, T2 b) { return a == b; }
我在here,here,甚至here上都找不到任何关于这个案例的引用。我随机尝试了一些东西,比如:
/* 1 */ template<AreEqComparable T1, T2>
/* 2 */ AreEqComparable<T1, T2>
/* 3 */ template<AreEqComparable<T1, T2>>
但是它们都抛出了语法错误。我认为答案应该在Bjarne Stroustrup的P0557规范中的某个地方,但我很快就找不到了。
https://stackoverflow.com/questions/56980155
复制相似问题