可以使用Boost作为C++标准库的完全替代品
Can Boost be used as a full replacement of the C++ Standard library?
假设我有最小的头,比如<new>
、<initializer_list>
,也许还有其他一些东西,是否可以使用Boost作为std C++库,或者缺少很多代码?
我假设一个C标准库,可能有像printf
(想想Windows)这样的糟糕版本,Boost会在<boost/cstddef>
(或其他什么)中提供更好的实现吗?
否。Boost不是为了取代C++标准库而设计的;它被设计为补充和扩展C++标准库。此外,Boost在很大程度上依赖于C++标准库。
嗯,没有。例如,Boost没有定义封装标准输出的流。当然,您可以将STDOUT
本身与一些较低级别的函数一起使用,但通过这种逻辑,您几乎可以在不使用标准库的情况下完成所有操作。
我建议使用Boost或任何其他真正的跨平台库来处理任何可能与平台无关的东西。网络/锁定等
对于其他一切,我都会坚持使用标准库——它们有很好的文档记录,它们通常针对操作系统进行了优化,除了你可能需要忍受的一些ifdef之外,它们在大多数平台上都可以编译和运行。
相关文章:
- 使用CMake检测支持的C++标准
- 如何理解C++标准N3337中的expr.const.cast子句8
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 编译标准库类型
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 铸造标准::有没有回到原来的类型
- C++中原子的替代品<variant>
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 标准库类型的赋值运算符的引用限定符
- 标准是否严格定义了该程序应该如何编译?
- 如何从Windows应用程序输出到标准?
- 安全到标准:移动会员?
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 这是否符合C++标准:双响双响,例如!!(-0.0).
- 标准::矢量的高性能替代品
- itoa()的C++标准替代品,用于将int转换为基本的10 char*
- Microsoft是标准::reverse_copy的安全替代品?
- 可以使用Boost作为C++标准库的完全替代品