Here is my review of the FIT library
Please provide in your review whatever information you think is valuable to understand your final choice of ACCEPT or REJECT including Fit as a Boost library. Please be explicit about your decision.
I vote to ACCEPT FIT as a Boost library.
Some other questions you might want to consider answering: - What is your evaluation of the design? - What is your evaluation of the implementation?
I have found both the design and the implementation to be consistent and well carried through. There are a few things which are in the detail which are in fact of use to users and it would be helpful it they were available in the fit namespace. See notes below.
- What is your evaluation of the documentation?
The general standard of the reference documentation is good. It would help to have some more examples. There are some things which are not documented such as alias and the configuration. Also move and forward which are in detail although useful to users. - What is your evaluation of the potential usefulness of the library? I think this is a very useful library. I have explored this by building an example use - see notes below. - Did you try to use the library? With which compiler(s)? Did you have any problems? Yes, I have built examples to run everything I can find in the library. I did this with the version available in February this year and have moved the examples over to the Boost version with the necessary changes to namespace and boostification of the macros. All worked after I found the name changes to compress/reverse compress to fold/reverse_fold. I see that this is a response to previous discussion and I agree with the changes. - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I have been working with FIT for some time and building the examples. I have mainly used various versions of clang and libc++, also using various versions of gcc. I have discovered that not all of the compiler configuration is carried out in fit/configure.hpp. The following headers also detect the compiler being used: alias, always, implicit, pack, reveal, unpack. I have built examples of all of the code I can find, including for alias where there is no documentation and only test examples for some of the things in the header. It is used in pack and combine and may have been intended to be internal although it can be used externally. In some of the examples I have combined FIT with boost function and boost phoenix - Are you knowledgeable about the problem domain? I have been able to compare the operations of FIT with other implementations of similar code and found that FIT can go far beyond what was possible using C++. I have been active in this area for longer that I care to remember (> 10 years). - Were the concerns from the March 2016 review of Fit addressed? This is hard to answer as I could not find the full report on the first review. I think that it is the case.
Thank you for participating!
Thank you Paul for the library. I look forward to making use of it. Best wishes John Fletcher