过去几个月我一直在慢慢学习,如果C ++标准使用第三方库,我很好奇。我问这个的原因是因为C ++ 20说可能的库更改将包括我在Boost ASIO之后被告知的网络。 Boost ASIO支持SSL,但要求您安装OpenSSL。
这让我想到,如果C ++ 20支持网络(如果它们也支持SSL / TLS),他们会依赖OpenSSL来运行吗?很好奇这一切是如何运作的。
由于
答案 0 :(得分:2)
标准库的实现者可以自由地实现它,只要它们符合所需的接口即可。
例如,如果libstdc ++决定不打扰创建他们自己的网络TS实现并决定使用包装器ASIO而不是那样(假设他们整理了任何许可问题)
答案 1 :(得分:0)
C ++标准规定了C ++实现的要求,并且在许多地方还指定了实现具有不同的纬度的位置。例如,_A
是保留标识符的事实意味着实现可以将该符号用于他们想要的任何目的。
这里的想法是,这种自由实现了许多可能的实现。这同样适用于标准库中无法在可移植C ++中实现的部分,例如建议的网络甚至只是磁盘I / O.实现可以随心所欲地实现它们。如果操作系统具有本机支持,那么这是一个合理的选择,但标准没有规定。