通用库是否包含任何普通用户无法编写的代码
Does general purpose libraries contain any code which cannot be written by normal users?
boost、STL、ACE(通常包含在namespace std
中)等库是否包含任何常规程序员无法编码/使用的特殊类型的编码技术?
从更广泛的意义上讲,他们是否利用了任何编译器或特定于实现的实用程序,而这些实用程序并没有向普通程序员公开?
这些都是用相同的代码编写的,每个人都可以使用。然而,代码通常很难阅读(至少对我来说),因为它们花了很大的篇幅来确保库的通用性。以下是STL的sgi实现。浏览并亲自查看。
由于标准库是C++规范的一部分,因此您的问题没有充分的依据。
例如,std::fstream
(或者至少std::filebuf
)的实现必须使用依赖于操作系统的接口。这些算"特定于实施的实用程序"吗?
最重要的是,规范没有将标准库与语言的其他部分分开。它只是语言的一部分,"普通程序员"可以使用它的功能。
Boost大多是用标准C++编写的,但它们确实利用了特定于平台的功能,当这可以提高性能时,它们偶尔需要依赖编译器的功能扩展。文档通常会提到某个功能不是在所有平台上都可用。
我不知道ACE。
STL(和其他)是用"纯C++"编写的。请参阅此处了解一个非常相似的问题。
C、 另一方面,在其标准库文件中有许多系统调用(unix/Windows/etc),以使一切正常工作。
C++0x STL还使用了一些编译器魔法,使一些新的语言功能发挥作用。
相关文章:
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?
- 创建一个数组,以允许用户输入存储并稍后在代码中使用
- 使用用户输入打印 6X10 矩阵的代码 - C++
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 代码在执行之前终止,并且没有从用户那里获取输入
- 如何使用 GDB 从功能C++逐步调试到 std::function 用户代码?
- 有没有把用户输入当作代码来阅读的想法
- C++ .我正在尝试通过使用开关内的数组来获取用户输入,但是当我运行代码时,它显示分段错误?
- C++代码,用于在用户插入的字符串的每个元音之后插入一对字符
- 如何为用户设置仅输入 4 位代码的限制?
- 为什么在代码块中执行时会跳过输入用户输入的行?
- 为什么我的代码在 c++ 中无限循环.我的代码需要反复提示用户
- 导入机器人机械臂(6轴)的连接部件,并通过用户输入(C++代码)使每个关节旋转
- 如何在用户退出之前重复整个代码?
- 如果用户尝试从 JS 调用对象的未定义函数C++则回调C++代码
- 如何让这个C++代码从用户那里读取五个整数而不是一个整数?
- C++中的奇怪异常代码,当用户输入为 23 时,退出值 1,073,740,940(代码:0xc0000374)
- 我在此代码中要求一个数字,如果用户给出一个字母,我该怎么办?
- 将 ProcessEntry32.szExeFile 与用户输入的数据进行比较时,C++ _wcsicmp代码未编译
- 为什么此代码无法正确读取用户输入