James E. King, III wrote:
If you decide to change system_error / error_code please make it header-only.
We went over this last time, and touched the question again this time; the specification of system_category() requires that a reference to the same object is returned, and in the presence of DLLs, the only way to guarantee this is to make Boost.System itself a DLL. If we adopt a more relaxed attitude and change operator== for error_category to match (by using a similar technique there to what MS does in their <system_error>), we might be able to get header-only working in practice in this scenario (if one doesn't pay attention to the actual address of the category.) But even if we do fix the header-only case, switching to header-only by default would still be a major change.