gpt4 book ai didi

C++:为什么 std::greater() 包含在 iostream 中?

转载 作者:行者123 更新时间:2023-11-30 02:14:15 25 4
gpt4 key购买 nike

我注意到我的 C++ 代码包含 std::greater<T>()编译良好,不包括 <functional> .这让我开始思考。事实证明,这段代码可以编译:

#include <iostream>
int main(){
std::greater<T>();
}

但这个不是:

int main(){           //<iostream> doesn´t get included
std::greater<T>();
}

据此我可以推断 <iostream>包含 std::greater这对我来说似乎有点奇怪。有人可以解释一下,为什么std::greater<T>()包含在 <iostream> 中?

如果这很重要,我正在使用 g++(x86_64-posix-seh-rev0,由 MinGW-W64 项目构建)8.1.0 和 C++14。

最佳答案

它不受 ISO 标准的保证。该 header 的实现使用它。您还可能会发现 <utility> , <string> (可能包含在 <ios><iosfwd> 中),<memory>还有一些<type_traits>可从 <iostream> 获得.

五个有保证的 header 是(C++11 起):ios、iosfwd、istream、ostream、streambuf。

关于C++:为什么 std::greater<T>() 包含在 iostream 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260506/

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