
<snip>
Artyom wrote:
I think pimpl should be used on by case basis, because it doesn't make sense in every library Boost has.
<snip>
I agree, but I think that there should be policy that recommends doing that for relevant parts.
<snip> If you look at the archives of this mailing list, you will see that there was a concerted effort to keep libraries header-only in order to avoid the myriad of problems involved in ensuring that boost libraries are compiled with ALL required settings to be compatible with the users' build targets.
I would only add one single notice: [Sarcasm] I would only rephrase you a little: in order to avoid the myriad of problems involved in ensuring that boost libraries are compiled with **one specific** compiler on **one** specific operating system where compiler run-times are not backward compatible between releases and even between debug/release builds, where is no standard naming conventions for various libraries types even exists, and building shared library requires extraordinary skills and lots of non-trivial configuration macros in order to get it done right. [/Sarcasm] Please, no offense all MSVC/MS Windows users, I agree, you (and me too) should not suffer this hell every day... ----- But still, I think that creation of header only libraries just in order to simplify build procedures, IMHO, are just not justified. Libraries are not designed for simple users they are designed for developers that should be capable to solve these problems. Best, Artyom