【发布时间】:2021-03-19 12:20:16
【问题描述】:
我知道 std::greater 是如何工作的。但是当我从 C++14 开始阅读 std::greater 的 API 时,它的默认类型是 void。因此,如果我们不将任何模板参数传递给更大,它默认为 void,如下所示。但是结果是按降序排列的。
#include <iostream>
#include <set>
template< class T = void >
struct greater;
int main()
{
std::set<int, std::greater<>> s {4, 5, 6, 7}; // This transforms to std::set<int, std::greater<void>>
}
有人能解释一下这个专业是如何工作的吗?
【问题讨论】: