
Please always state in your review, whether you think the library should be accepted as a Boost library!
Yes. I'd use this library today if it were part of Boost.
As the External Concepts idea is a rather new one, I would like to ask you to comment on this.
It strikes me as a new name for an idiom that's been known for some time but which never had a good name. I'm not convinced that External Concept is a good name, but it's a start. I'd like to see a more formal treatment of the definition of External Concept than is provided by the documentation included with this library. The documentation that's provided I found sufficient, it's just of a different style than other concept documentation.
Additionally please consider giving feedback on the following general topics:
- What is your evaluation of the design? - What is your evaluation of the implementation?
No criticism. For the most part, the design and implementation is straightforward and easy to understand. Workarounds are apparently provided for less-capable compilers (although I didn't evaluate any such compilers). I'm happy to see that this library is almost completely self contained which makes it much easier to understand and use (especially when confronted with compiler errors, for example).
- What is your evaluation of the documentation?
Sufficient. It's a simple library with simple documentation.
- What is your evaluation of the potential usefulness of the library?
Very useful.
- Did you try to use the library? With what compiler? Did you have any problems?
I built all of the supplied test programs with both VC7.1 and VC8 (alpha, build 40309). The algorithm_example program crashed on exit when built with the VC8 alpha, but that's likely a VC8 problem and not a problem with this library. I intend to test again with a newer build when I have a chance.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
I spent about an hour, reading all of the supplied documentation, all of the referenced documentation, most of the test programs and much of the implementation code.
- Are you knowledgeable about the problem domain?
Sufficiently knowledgeable :-) -cd