gpt4 book ai didi

C++17模板参数推导之谜

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:32 25 4
gpt4 key购买 nike

<分区>

在 C++17 中你可以这样做:

#include <iostream>
#include <algorithm>
#include <functional>

int main()
{
double values[5] = { 1.1, 2.2, 3.3, 4.4, 5.5 };

// Notice this:
std::sort(values, values+5, std::greater());

for(double v: values) std::cout << v << " ";
std::cout << "\n";
}

您实际上不需要指定std::greater 的模板参数。它将被自动推断为 double。真是太好了。

但是等等......怎么办?!?

没有什么告诉 std::greater 模板参数应该是类型为 double。它不接受任何构造函数参数或任何东西。std::sort() 的声明表面上是这样的:

template<class RandomIt, class Compare>
void sort(RandomIt first, RandomIt last, Compare comp);

所以没有什么告诉它它也应该是双倍的。

那怎么办?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com