Upcoming Boost.Fit Review (September 8th-17th)
Hi everyone, This coming Friday, September 8th, marks the start of review of the Fit library by Paul Fultz II. Source: https://github.com/pfultz2/Fit Docs: http://fit.readthedocs.org/ This is the second time that the library will go through the review process, with the previous time being in March of 2016. The result of the initial review can be found here: https://lists.boost.org/Archives/boost/2016/04/228770.php In this second review, those who choose to participate should be as rigorous as they'd be in any other review, but are also encouraged to voice whether or not the concerns from March of 2016 were addressed. The following is a brief description of the library from its author: ========== Fit is a header-only C++11/C++14 library that provides utilities for functions and function objects, which can solve many problems with much simpler constructs than whats traditionally been done with metaprogramming. Fit is: - Modern: Fit takes advantages of modern C++11/C++14 features. It support both constexpr initialization and constexpr evaluation of functions. It takes advantage of type deduction, varidiac templates, and perfect forwarding to provide a simple and modern interface. - Relevant: Fit provides utilities for functions and does not try to implement a functional language in C++. As such, Fit solves many problems relevant to C++ programmers, including initialization of function objects and lambdas, overloading with ordering, improved return type deduction, and much more. - Lightweight: Fit builds simple lightweight abstraction on top of function objects. It does not require subscribing to an entire framework. Just use the parts you need. Fit is divided into three components: - Function Adaptors and Decorators: These enhance functions with additional capability. - Functions: These return functions that achieve a specific purpose. - Utilities: These are general utilities that are useful when defining or using functions. ========== Requirements¶ http://fit.readthedocs.io/en/latest/doc/src/index.html#requirements This requires a C++11 compiler. There are no third-party dependencies. This has been tested on clang 3.5-3.8, gcc 4.6-6.2, and Visual Studio 2015. Gcc 5.1 is not supported at all, however, gcc 5.4 is supported. Contexpr support¶ http://fit.readthedocs.io/en/latest/doc/src/index.html#contexpr-support Both MSVC and gcc 4.6 have limited constexpr support due to many bugs in the implementation of constexpr. However, constexpr initialization of functions is supported when using the FIT_STATIC_FUNCTION http://fit.readthedocs.io/en/latest/doc/src/FIT_STATIC_FUNCTION and FIT_STATIC_LAMBDA_FUNCTION http://fit.readthedocs.io/en/latest/doc/src/FIT_STATIC_LAMBDA_FUNCTION constructs. Noexcept support¶ http://fit.readthedocs.io/en/latest/doc/src/index.html#noexcept-support On older compilers such as gcc 4.6 and gcc 4.7, noexcept is not used due to many bugs in the implementation. Also, most compilers don’t support deducing noexcept with member function pointers. Only newer versions of gcc(4.9 and later) support this. ========== Please take this time to become familiar with the Fit library before the review takes place and feel free to respond in this thread with any additional questions related to the library or its review. Thanks! -- -Matt Calabrese
participants (1)
-
Matt Calabrese