
Gennadiy Rozental wrote:
snipped... I thought it should be clear: imagine if all C++ issues both core language and STL development would be discussed in a single big group. They are separated because they represent different domains. Libraries and tools are also separate domains with different requirements for portability, clarity, flexibility. Tools for us more like black box - we don't need to know how they do their work. While with libraries we interested how they do, whatever they do. Libraries directed for the end user to compile with. Tools on the other hand are to be executed.
Wave is not just a tool, if one defines a tool as just a program to run with some command line options, or a GUI in which one fills in some dialog and runs. While Wave has a command line, it also has a programming interface which allows one to examine the preprocessing tokens and even do some traces for macro expansion. Because it has a programming interface which allows a programmer to use it for his/her own purposes, it fulfills IMO the library concept as used in Boost, even though it also presents a tool command line concept. For this reason I do not think Wave will necessarily be treated like a black box by all programmers, so I do not find your argument to treat it differently than a Boost library compelling. To me, if it has a programming interface, it is a "library" in Boost terms, and Wave definitely has that.