添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu , C++ Coding Standards

Documentation

Downloads
Platform File SHA256 Hash
unix boost_1_72_0.tar.bz2 59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722
boost_1_72_0.tar.gz c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f
windows boost_1_72_0.7z 247a91dd7e4d9dd3c4b954b532fbc167ba62dc15ab834e5ad893d7c3f9eb5f0f
boost_1_72_0.zip 8c20440aaba21dd963c0f7149517445f50c62ce4eb689df2b5544cc89e6e621e
These are patches from library authors which were found too late to be fixed in the release. Be careful as they have not been through the normal testing process. Changed the async_initiate helper function to automatically deduce its return type, for C++11 or later. Changed the initiation function objects to report their associated I/O executor via the nested type executor_type and member function get_executor () . Added the default_completion_token trait, giving I/O executor types an associated default completion token type for use with asynchronous operations. This trait is specialised for the use_awaitable completion token, for example, to allow asynchronous operations to be used as follows: co_await socket . async_connect ( my_endpoint ) . Added a workaround for __float128 not being considered as a floating point type by some versions of libstdc++. We'd love to know how you or your company use Beast, consider adding an entry to the Companies and Individuals Using Beast list. Extracted filesystem_error to exception . hpp ; file_status and associated enums and functions to file_status . hpp ; directory_entry , directory_iterator and recursive_directory_iterator to directory . hpp . Deprecated: For backward compatibility operations . hpp still includes the new headers exception . hpp , file_status . hpp and directory . hpp , unless BOOST_FILESYSTEM_NO_DEPRECATED macro is defined. These implicit includes are considered deprecated and will be removed in a future release. Users are encouraged to include the new headers directly or include filesystem . hpp . The filesystem_error exception is now implemented in the compiled library of Boost.Filesystem. Users may need to add linking with Boost.Filesystem library in their projects. In directory_iterator on POSIX systems, support for readdir / readdir_r has been reworked to avoid memory allocations for dirent structures when readdir is used. This reduces memory consumption and eliminates the possibility of buffer overruns in case if readdir produces a very long directory name. New: Added directory_options enum, which reflects the same named enum from C++20. The enum is supported in directory_iterator and recursive_directory_iterator to customize iteration behavior. In particular, the iterators now support skipping directories that can't be opened due to insufficient permissions. The symlink_option enum is now deprecated and should be replaced with directory_options . By default, recursive_directory_iterator is now reset to the end state in case of errors, as required by C++20. ( #112 ) New: Added directory_options :: pop_on_error option, which configures recursive_directory_iterator so that it attempts to recover from iteration errors by repeatedly invoking pop () until it succeeds or the end state is reached. ( #113 ) New: Added directory_options :: skip_dangling_symlinks option, which configures recursive_directory_iterator so that it doesn't follow dangling directory symlinks and continues iteration instead of reporting an error. Deprecated: The following members of recursive_directory_iterator are now marked as deprecated: level () , no_push_pending () , no_push_request () , no_push () . Users are advised to replace their use with the standard counterparts: depth () , recursion_pending () , disable_recursion_pending () . Note that recursion_pending () has the opposite meaning compared to no_push_pending () and no_push_request () . Deprecated methods will be removed in a future release. Fixed path :: lexically_relative (and any dependent algorithms) to correctly handle empty, dot and dot-dot path elements in its argument. The behavior is made closer to C++17 std :: path :: lexically_relative in that empty and dot path elements are ignored and dot-dot path elements are accounted by decreasing the number of dot-dot path elements to generate in the resulting relative path. ( #76 ) Function convolve_1d in Numeric extension for convenient use of convolve_rows and convolve_cols ( PR#347 ) and PR#367 ). The headers boost / math / tools / univariate_statistics . hpp and boost / math / tools / bivariate_statistics . hpp , have been deprecated in favor of boost / math / statistics / univariate_statistics . hpp and boost / math / statistics / bivariate_statistics . hpp . Reworked the Sterling approximation used by multiprecision gamma functions to be applicable to all the function that use the Lanczos approximation at regular precision. Also extended Lanczos approximations up to 100 decimal digit precision. Big constexpr update allows cpp_int and float128 arithmetic to be fully constexpr with gcc and clang 9 or later, or any compiler supporting std :: is_constant_evaluated () . Standalone outcome is now make install -able, and cmake find_package () can find it. Note that you must separately install and find_package () Outcome's dependency, quickcpplib, else find_package () of Outcome will fail. The git submodule mechanism used by standalone Outcome of specifying dependent libraries has been replaced with a cmake superbuild of dependencies mechanism instead. Upon cmake configure, an internal copy of quickcpplib will be git cloned, built and installed into the build directory from where an internal find_package () uses it. This breaks the use of the unconfigured Outcome repo as an implementation of Outcome, one must now do one of: 1. Add Outcome as subdirectory to cmake build. 2. Use cmake superbuild (i.e. ExternalProject_Add () ) to build and install Outcome into a local installation. 3. Use one of the single header editions. For standalone Outcome, the current compiler is now checked for whether it will compile code containing C++ Concepts, and if it does, all cmake consumers of Outcome will enable C++ Concepts. Set the cmake variable CXX_CONCEPTS_FLAGS to an empty string to prevent auto detection and enabling of C++ Concepts support occurring. OUTCOME_TRY operation now hints to the compiler that operation will be successful. P1886 Error speed benchmarking showed that there is considerable gain in very small functions by hinting to the compiler whether the expression is expected to be successful or not. OUTCOME_TRY previously did not hint to the compiler at all, but now it does. A new suite of macros OUTCOME_TRY_FAILURE_LIKELY hint to the compiler that failure is expected. If you wish to return to the previously unhinted behaviour, define OUTCOME_TRY_LIKELY ( expr ) to (!! expr ) . Support for C++ Coroutines has been added. This comes in two parts, firstly there is now an OUTCOME_CO_TRY () operation suitable for performing the TRY operation from within a C++ Coroutine. Secondly, in the header outcome / coroutine_support . hpp there are implementations of eager < OutcomeType > and lazy < OutcomeType > which let you more naturally and efficiently use basic_result or basic_outcome from within C++ Coroutines -- specifically, if the result or outcome will construct from an exception pointer, exceptions thrown in the coroutine return an errored or excepted result with the thrown exception instead of throwing the exception through the coroutine machinery (which in current compilers, has a high likelihood of blowing up the program). Both eager < T > and lazy < T > can accept any T as well. Both have been tested and found working on VS2019 and clang 9. make_error_code () and make_exception_ptr () are now additionally considered for compatible copy and move conversions for basic_result <> . This lets you construct a basic_result < T , E > into a basic_result < T , error_code > , where E is a custom type which has implemented the ADL discovered free function error_code make_error_code ( E ) , but is otherwise unrelated to error_code . The same availability applies for exception_ptr with make_exception_ptr () being the ADL discovered free function. basic_outcome <> has less support for this than basic_result <> in order to keep constructor count down, but it will accept via this mechanism conversions from basic_result <> and failure_type <> .