gpt4 book ai didi

c++ - void 是什么意思,或者在这种情况下它如何影响 T?

转载 作者:可可西里 更新时间:2023-11-01 15:38:25 30 4
gpt4 key购买 nike

所以我和我的一个 friend 用 C++ 做一些工作,我们在文档中遇到了这个问题。

//(until C++14)
template<class T>
struct less;
//(since C++14)
template<class T = void>
struct less;

现在我知道它如何与 class T = int 一起工作,同样适用于 double 和 float 以及其他类型的类。但我很困惑的部分是,在这种情况下 void 是如何运作的?使用 void 有什么限制?

我问这个是因为 C++ 文档非常有帮助,而且我找不到任何其他解释它的地方。

最佳答案

void是一种类型。

void 有一些限制type 可以使用,但是,void是类型系统中的有效类型。因此,允许有 void作为模板参数的参数,包括作为默认参数。

因此,如果您输入 std::less<>那么它意味着std::less<void> .

什么的问题std::less<void> means 是一个单独的:通常,std::less<T>比较T值,但没有 void 类型的值.相反,std::less<void>是一种特殊情况:您可以将任何(可能不同)类型的两个值传递给它,只要它们可以进行比较即可。参见 the cppreference.com article on std::less<void> .

关于c++ - void 是什么意思,或者在这种情况下它如何影响 T?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57479544/

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