Advice on C++20 modules (Boost)

As long as any possible ABI symbol is present in the library the boost_asio library provides (including module initializers), things should be fine. If everything is inline, then the library just needs to provide module initializers for every possible module.

I’m not sure how this will look in CMake, but I suspect that something needs to be done as the only place is -D on the command line. Maybe something like:

#if __has_include(<boost/asio/user/config.hpp>)
#include <boost/asio/user/config.hpp>
#endif
// Polyfills anything not specified with defaults.
#include <boost/asio/default/config.hpp>

?