C++标准库必须在C++中实现

Must a C++ Standard Library be implemented in C++?

本文关键字:C++ 实现 标准      更新时间:2023-10-16
  1. 是否必须在C++中实现一致的C++标准库实现
  2. 如果没有,是否允许做在纯C++中不可行的神奇事情;标准库&一些实现定义的行为

  • 我知道有一些并行实现依赖于扩展(至少在C++11之前的版本中),但它们真的一致吗
  • 我在标准中找不到任何要求,但也许我今天的标准符很弱

根本不需要如何实现标准C++库(或标准C库)。库所需要实现的就是实现文档化和指定的接口。如何做到这一点完全取决于实施。部分标准库通常由编译器以某种神奇的方式实现,在C++2011中,有几个接口实际上不能使用标准C++2011语言工具实现!这主要适用于<type_traits>中的一些特征,但也有其他情况。

仅供参考:C++是如何实现的,以及符合标准的真正含义是什么,这些都非常模糊。相关条款是1.4[介绍合规性]。然而,它只是谈到了正在发布的诊断以及程序必须做什么,以及资源限制的限制。

否。

实际上,标准甚至规定#include <map>(例如)可以简单地导入预先存储的AST,而根本不引用文件。

根本不需要,只需要接口是C++。