使用boost C ++库?

时间:2011-01-13 16:21:38

标签: c++ boost

  

可能重复:
  Boost Library

通常当我尝试(并且失败)一个C ++项目时,我在浏览网页时会遇到Boost。我试过阅读Boost网站,但没有很好的简短描述为什么要使用Boost以及它到底是什么。

我非常喜欢Python的一件事是,所有内容都是内置的,跨平台的,Web请求,电子邮件,XML,JSON等。升压也是如此吗?

所以,足够的咆哮,我具体的回答问题:

  • Boost究竟是什么?
  • 使用Boost的最重要原因是什么?
  • 它是完全跨平台的吗?
  • 比普通的自制啤酒代码更安全吗?你会很快忽略一个缓冲区溢出等吗?
  • 是否有一个链接指向一个或两个句子中描述Boost的所有模块的页面?

6 个答案:

答案 0 :(得分:44)

  

Boost究竟是什么?

Boost是一系列有用且极高质量的C ++库,可以补充相当小的标准库。

  

使用Boost的最重要原因是什么?

Boost提供了C ++中缺少的高质量工具。它们的用途非常多样,但Boost是否适合您,完全取决于您的需求。但我可以肯定地说,每个足够大的C ++代码库都可以从使用Boost中受益。

一些最通用的部分是shared_ptr(一个引用计数智能指针,有助于防止指针丰富的代码中的内存泄漏),array提供了一个非常方便的C风格包装器固定大小的数组和其他小的奇数位,已经集成到下一个C ++标准中。

  

它是完全跨平台的吗?

几乎总是如此。这是Boost的主要特质之一。

  

是否有一个链接指向一个或两个句子中描述Boost所有模块的页面?

There is indeed.

答案 1 :(得分:10)

1)Boost是一组API,由C ++中的一些最优秀的思想家开发。你可以使用你想要的多少。每个API都瞄准并解决了一个特定的范例。例如:

lexical_cast<>  - Type-safe ways of casting from one type to another.
program_options - Library for parsing command lines in a type-safe manner
asio            - Asynchronous Input/Output.  Great for working with sockets, IP4/IP6
shared_ptr      - Reference-counted smart pointer

......还有更多。

2)使用Boost的一个最重要的原因是,做过这个的伟大的开发人员已经做得很好。这些解决方案经过同行评审和强大。如果你有一个问题要解决,Boost有一个适合账单的API,你可能应该使用它。

3)它就像你将要获得的跨平台一样。即,是的。

4)我会使用提升优于任何人自酿的代码。 Homebrew倾向于被单个开发人员(编码它的人)使用。 Boost在各地的商业应用中都有使用,正如我之前所说,它是经过同行评审的。你没有比这更强大。

5)主要提升页面按功能和字母顺序列出了库列表。

答案 2 :(得分:9)

  

Boost究竟是什么?

Boost是一个C ++库集合,可帮助您避免编写自定义代码来解决常见问题。

  

使用Boost的最重要原因是什么?

Boost使您无需设计,实施和测试其提供的解决方案。这样可以节省大量时间,并帮助您避免错误。

  

它是完全跨平台的吗?

Boost支持许多平台,有时提供解决方案以在特定平台上高效。您可以在 Compilers Tested 标题下的当前版本page底部附近看到已经过测试的平台。

  

它是否比常规的家庭酿造代码更安全“,您可以快速忽略该代码   缓冲区溢出等?

是的,除非您有足够的时间来测试代码。 Boost包括一个自动化测试套件,并且通过日常使用由数十万甚至数百万开发人员进行测试。它还有很多文档可以帮助您使用它包含的库​​进行开发。 Boost不仅比大多数自制的代码更安全,而且通常也更具性能。

  

是否有链接到描述Boost所有模块的页面   一两句话?

Boost Library Documentation链接页面提供了Boost中所有库的一句话摘要。

答案 3 :(得分:3)

Boost是STL中缺少的C ++类和其他东西的集合。 Boost中的许多库都包含在新的C ++标准中。由于此代码被广泛使用和同行评审,因此它肯定比您能够提供的更安全。它通常是完全跨平台的,但可能会有一些陷阱。

至于什么是提升,请查看:http://www.boost.org/doc/libs/1_45_0/?view=categorized

答案 4 :(得分:3)

BOOST是一系列库,满足了许多C ++项目的共同需求。通常,它们优先考虑BOOST实现代码的可读性或有时编译时间的正确性,可重用性,可移植性,运行时性能和空间效率。它们往往不包括完整的高级功能需求(例如应用程序框架),而是(幸运的是)提供可以更自由地组合的构建块,而无需指示或支配应用程序设计。

考虑使用BOOST的重要原因包括:

  • 大多数图书馆都经过了很好的测试和设计:与在相同问题空间中使用家庭酿造解决方案的人相比,他们通常会得到一些优秀程序员的合理评价,并且广泛用于收集广泛的实际反馈
  • 它已经写好,你的解决方案可能不是
  • 它非常便携(但每个库不同)
  • C ++社区中的更多人将有助于您使用代码
  • BOOST通常是引入C ++标准的试验场,所以你在重写代码方面做的工作要少,以便与未来的标准兼容BOANS
  • 由于社区需求,编译器供应商更有可能通过BOOST使用来测试和回应正确性问题

这些库在这里用一两行描述:http://www.boost.org/doc/libs/

答案 5 :(得分:2)

维基百科上boost page的任何内容都没有回答?