Boost库简介


1.简介
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。
Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。在Boost库的开发中,Boost社区也在这个方向上取得了丰硕的成果。在送审的C++标准库TR1中,有十个Boost库成为标准库的候选方案。在更新的TR2中,有更多的Boost库被加入到其中。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
Boost中大部分的内容可以直接包含头文件即可使用,其余的需要编译,boost_1_53_0版本中有二十个库是需要编译的;见下图:

2.分类 按类别可分为(boost_1_53_0版本):

Algorithms                                     ---算法库 Broken Compiler Workarounds                   ---编译器问题的变通方案库 Concurrent Programming                        ---并发编程库                                              Containers                                                                       --- 容器库 Correctness and Testing                                                  --- 排错和测试库 Data Structures                                                                ---数据结构库 Domain Specific                                                               ---特定领域库 Function Objects and Higher-order Programming            ---函数对象和高阶编程库 Generic Programming                                                      ---泛型编程库 Image Processing                                                             ---图像处理库 Input/Output                                                                   ---输入输出库 Inter-language Support                                                    ---跨语言混合编程库 Iterators                                                                           ---迭代器库 Language Features Emulation                                          ---语言功能仿真库 Math and Numerics                                                         ---数学和数字库 Memory                                                                           ---内存管理库 Parsing                                                                             ---解析库 Patterns and Idioms                                                         ---模式和风格库 Preprocessor Metaprogramming                                     ---预处理元编程库 Programming Interfaces                                                  ---编程接口库 State Machines                                                                ---状态机库 String and Text Processing                                               ---字符串和文本处理库 System                                                                              ---系统库 Template Metaprogramming                                            ---模板元编程库 Miscellaneous                                                                  ---杂项库


以下的每个分类所包含的的库(复制自boost帮助文档boost_1_53_0版本),就不翻译啦):
Algorithms                                      ---算法库
  • algorithm - A collection of useful generic algorithms, from Marshall Clow. 
  • foreach - BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler.
  • gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.
  • geometry - Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.
  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
  • minmax - standard library extensions for simultaneous min/max and min/max element computations, from Hervé Brönnimann.
  • range - A new infrastructure for generic algorithms that builds on top of the new iterator concepts, from Thorsten Ottosen.
  • string_algo - String algorithms library, from Pavol Droba
  • utility - Class next(),  prior() function templates, from Dave Abrahams and others.
Broken Compiler Workarounds                  ---编译器问题的变通方案库



  • compatibility - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.
  • config - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
Concurrent Programming                       ---并发编程库      
  • asio - Portable networking and other low-level I/O, including sockets, timers, hostname resolution, socket iostreams, serial ports, file descriptors and Windows HANDLEs, from Chris Kohlhoff.
  • atomic - C++11-style atomic<>, from Helge Bahmann, maintained by Tim Blechmann
  • context - Context switching library, from Oliver Kowalke
  • coroutine - Coroutine library, from Oliver Kowalke
  • interprocess - Shared memory, memory mapped files, process-shared mutexes, condition variables, containers and allocators, from Ion Gaztañaga
  • lockfree - Lockfree data structures, from Tim Blechmann
  • MPI - Message Passing Interface library, for use in distributed-memory parallel application programming, from Douglas Gregor and Matthias Troyer.
  • thread - Portable C++ multi-threading, from William Kempf.

Containers                                                                       --- 容器库 

  • array - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.
  • bimap - Bidirectional maps, from Matias Capeletto.
  • circular_buffer - STL compliant container also known as ring or cyclic buffer, from Jan Gaspar.
  • container - Standard library containers and extensions, from Ion Gaztañaga
  • dynamic_bitset - A runtime sized version of std::bitset from Jeremy Siek and Chuck Allison.
  • gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.
  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
  • icl - Interval Container Library, interval sets and maps and aggregation of associated values, from Joachim Faulhaber.
  • intrusive - Intrusive containers and algorithms, from Ion Gaztañaga
  • multi_array - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.
  • multi_index - Containers with multiple STL-compatible access interfaces, from Joaquín M López Muñoz.
  • pointer container - Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
  • property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.
  • property tree - A tree data structure especially suited to storing configuration data, from Marcin Kalicinski and Sebastian Redl.
  • unordered - unordered associative containers, from Daniel James.
  • variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

Correctness and Testing                                                   --- 排错和测试库

  • concept check - Tools for generic programming, from Jeremy Siek.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • test - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.

Data Structures                                                                 ---数据结构库

  • any - Safe, generic container for single values of different value types, from Kevlin Henney.
  • bimap - Bidirectional maps, from Matias Capeletto.
  • container - Standard library containers and extensions, from Ion Gaztañaga
  • compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al.
  • fusion - Library for working with tuples, including various containers, algorithms, etc. From Joel de Guzman and Dan Marsden and Tobias Schwinger.
  • icl - Interval Container Library, interval sets and maps and aggregation of associated values, from Joachim Faulhaber.
  • intrusive - Intrusive containers and algorithms, from Ion Gaztañaga
  • heap - Priority queue data structures, from Tim Blechmann
  • multi_index - Containers with multiple STL-compatible access interfaces, from Joaquín M López Muñoz.
  • optional - Discriminated-union wrapper for optional values, from Fernando Cacciola.
  • pointer container - Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
  • property tree - A tree data structure especially suited to storing configuration data, from Marcin Kalicinski and Sebastian Redl.
  • tribool - 3-state boolean type library, from Doug Gregor.
  • tuple - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.
  • variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

Domain Specific                                                               ---特定领域库

  • chrono - Useful time utilities, from Howard Hinnant, Beman Dawes, Vicente J. Botet Escribá.
  • crc - Cyclic Redundancy Code, from Daryle Walker.
  • date_time - Date-Time library from Jeff Garland.
  • units - Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe.
  • uuid - A universally unique identifier, from Andy Tompkins.

Function Objects and Higher-order Programming            ---函数对象和高阶编程库

  • bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter Dimov.
  • function - Function object wrappers for deferred calls or callbacks, from Doug Gregor.
  • functional - Enhanced function object adaptors, from Mark Rodgers.
  • functional/factory - function object templates for dynamic and static object creation, from Tobias Schwinger
  • functional/forward - adapters to allow generic function objects to accept arbitrary arguments, from Tobias Schwinger
  • functional/hash - A TR1 hash function object that can be extended to hash user defined types, from Daniel James.
  • functional/overloaded_function - Overload different functions into a single function object, from Lorenzo Caminiti.
  • lambda - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi and Gary Powell.
  • local_function - Program functions locally, within other functions, directly within the scope where they are needed, from Lorenzo Caminiti.
  • Phoenix - Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller
  • ref - A utility library for passing references to generic functions, from Jaako Järvi, Peter Dimov, Doug Gregor, and Dave Abrahams.
  • signals - managed signals & slots callback implementation, from Doug Gregor.
  • signals2 - managed signals & slots callback implementation (thread-safe version 2), from Frank Mori Hess.
  • result_of - determines the type of a function call expression.

Generic Programming                                                      ---泛型编程库

  • call_traits - Defines types for passing parameters, from John Maddock, Howard Hinnant, et al.
  • concept check - Tools for generic programming, from Jeremy Siek.
  • enable_if - Selective inclusion of function template overloads, from Jaakko Järvi, Jeremiah Willcock, and Andrew Lumsdaine.
  • function_types - Type traits for callable, built-in types, from Tobias Schwinger
  • gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.
  • in_place_factory, typed_in_place_factory- Generic in-place construction of contained objects with a variadic argument-list, from Fernando Cacciola.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al.

Image Processing                                                             ---图像处理库
  • gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.

Input/Output                                                                   ---输入输出库

  • asio - Portable networking and other low-level I/O, including sockets, timers, hostname resolution, socket iostreams, serial ports, file descriptors and Windows HANDLEs, from Chris Kohlhoff.
  • assign - Filling containers with constant or generated data has never been easier, from Thorsten Ottosen.
  • format - Type-safe 'printf-like' format operations, from Samuel Krempp.
  • io state savers - Save I/O state to prevent jumbled data, from Daryle Walker.
  • iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
  • locale - Provide localization and Unicode handling tools for C++, from Artyom Beilis
  • program_options - Access to configuration data given on command line, in config files and other sources, from Vladimir Prus.
  • serialization - Serialization of arbitrary data for persistence and marshalling, from Robert Ramey

Inter-language Support                                                    ---跨语言混合编程库

  • python - Reflects C++ classes and functions into Python, from Dave Abrahams.

Iterators                                                                           ---迭代器库

  • gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.
  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
  • iterator - Iterator construction framework, adaptors, concepts, and more, from Dave Abrahams, Jeremy Siek, and Thomas Witt.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela.

Language Features Emulation                                          ---语言功能仿真库

  • exception - A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads (N2179), from Emil Dotchevski.
  • foreach - BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler.
  • move - Portable move semantics for C++03 and C++1 compilers, from Ion Gaztañaga
  • parameter - Write functions that accept arguments by name, by David Abrahams and Daniel Wallin.
  • scope_exit - Execute arbitrary code at scope exit, from Alexander Nasonov and Lorenzo Caminiti.
  • typeof - Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.

Memory                                                                           ---内存管理库

  • pool - Memory pool management, from Steve Cleary.
  • smart_ptr - Six smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, Darin Adler, and Glen Fernandes.
  • utility - Class noncopyable plus checked_delete()checked_array_delete()next(),  prior() function templates, plus base-from-member idiom, from Dave Abrahams and others.

Math and Numerics                                                         ---数学和数字库

  • accumulators - Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler.
  • geometry - Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.
  • integer - Headers to ease dealing with integral types.
  • interval - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Hervé Brönnimann and Sylvain Pion.
  • math - Several contributions in the domain of mathematics, from various authors.
  • math/complex number algorithms - These complex number algorithms are the inverses of trigonometric functions currently present in the C++ standard, from John Maddock.
  • math/common_factor - Greatest common divisor and least common multiple, from Daryle Walker.
  • math/octonion - Octonions, from Hubert Holin.
  • math/quaternion - Quaternions, from Hubert Holin.
  • math/special_functions - A wide selection of mathematical special functions from John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.
  • math/statistical distributions - A wide selection of univariate statistical distributions and functions that operate on them from John Maddock and Paul Bristow
  • multi_array - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.
  • multiprecision - Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos.
  • numeric/conversion - Optimized Policy-based Numeric Conversions, from Fernando
  • odeint - Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • polygon - Booleans/clipping, resizing/offsetting and more for planar polygons with integral coordinates, from Lucanus Simonson.
  • random - A complete system for random number generation, from Jens Maurer.
  • ratio - A compile time ratio arithmetic, from Howard Hinnant, Beman Dawes, Vicente J. Botet Escribá.
  • rational - A rational number class, from Paul Moore.
  • uBLAS - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.

Template Metaprogramming                                            ---模板元编程库

  • function_types - Type traits for callable, built-in types, from Tobias Schwinger
  • fusion - Library for working with tuples, including various containers, algorithms, etc. From Joel de Guzman, Dan Marsden and Tobias Schwinger.
  • mpl - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.
  • proto - Expression template library and compiler construction toolkit for domain-specific embedded languages, from Eric Niebler.
  • ratio - A compile time ratio arithmetic, from Howard Hinnant, Beman Dawes, Vicente J. Botet Escribá.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al.

Patterns and Idioms                                                         ---模式和风格库

  • flyweight - Design pattern to manage large quantities of highly redundant objects, from Joaquín M López Muñoz.
  • signals - managed signals & slots callback implementation, from Doug Gregor.
  • signals2 - managed signals & slots callback implementation (thread-safe version 2), from Frank Mori Hess.
  • utility base-from-member idiom, from Dave Abrahams and others.
  • compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al.

State Machines                                                                ---状态机库

  • meta state machine - High-performance expressive UML 2.0 finite state machines, from Christophe Henry.
  • statechart - Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber.

Parsing                                                                             ---解析库

  • spirit - LL parser framework  represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman, Hartmut Kaiser, Dan Nuffer and team.

Preprocessor Metaprogramming                                      ---预处理元编程库
  • identity_type - Wrap types within round parenthesis so they can always be passed as macro parameters, from Lorenzo Caminiti.
  • preprocessor - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.

Programming Interfaces                                                   ---编程接口库

  • function - Function object wrappers for deferred calls or callbacks, from Doug Gregor.
  • parameter - Write functions that accept arguments by name, by David Abrahams and Daniel Wallin.

String and Text Processing                                               ---字符串和文本处理库

  • conversion/lexical_cast - lexical_cast class template, from Kevlin Henney.
  • format - Type-safe 'printf-like' format operations, from Samuel Krempp.
  • iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
  • locale - Provide localization and Unicode handling tools for C++, from Artyom Beilis
  • regex - Regular expression library, from John Maddock
  • spirit - LL parser framework  represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman, Hartmut Kaiser, Dan Nuffer and team.
  • string_algo - String algorithms library, from Pavol Droba
  • tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela
  • wave - Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser.
  • xpressive - Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.

System                                                                              ---系统库

  • chrono - Useful time utilities, from Howard Hinnant, Beman Dawes, Vicente J. Botet Escribá.
  • context - Context switching library, from Oliver Kowalke
  • date_time - Date-Time library from Jeff Garland.
  • filesystem - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.
  • system - Operating system support, including the diagnostics support that will be part of the C++0x standard library, from Beman Dawes.
  • thread - Portable C++ multi-threading, from William Kempf and Anthony Williams.

Miscellaneous                                                                  ---杂项库

  • conversion - Polymorphic and lexical casts, from Dave Abrahams and Kevlin Henney.
  • numeric/conversion - Optimized Policy-based Numeric Conversions, from Fernando Cacciola.
  • swap - Enhanced generic swap function, from Joseph Gauterin.
  • timer - Event timer, progress timer, and progress display classes, from Beman Dawes.
  • TR1 - An implementation of the Technical Report on C++ Library Extensions, using other Boost libraries as a basis, from John Maddock.
  • utility - Class noncopyable plus checked_delete()checked_array_delete()next(),  prior() function templates, plus base-from-member idiom, from Dave Abrahams and others.
  • value_initialized - Wrapper for uniform-syntax value initialization, from Fernando Cacciola, based on the original idea of David Abrahams.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值