C++标准库必须用C++实现吗?

Seb*_*ach 12 c++ standards-compliance c++-standard-library

  1. 必须在C++中实现符合C++标准库的实现吗?
  2. 如果没有,是否允许做纯粹的C++和标准库中不可行的神奇事物以及一些实现定义的行为?

  • 我知道存在依赖于扩展的并行实现(至少在C++ 11之前),但它们是否真的符合要求?
  • 我在标准中找不到任何要求,但也许我的标准福今天很弱

Die*_*ühl 19

完全没有要求如何实现标准C++库(或标准C库).所有库需要实现的是实现记录和指定的接口.如何完成这完全取决于实施.部分标准库通常由编译器以某种神奇的方式实现,而在C++ 2011中,有几个接口实际上无法使用标准C++ 2011语言工具实现!主要是对于某些特征,<type_traits>但还有其他一些特征.

仅供参考:C++如何实现以及它实际上符合标准的实际意义非常模糊.相关条款是1.4 [intro.compliance].然而,它只是谈论发布的诊断和程序必须做什么,限制资源限制.


Mat*_* M. 9

没有.

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