In general this is something external to the standard, as it's more of a linking/package management issue rather than a language one.
The ideal solution would be to have version data included in name mangling. It can be done manually with version namespaces. Automating it depends on which versioning system is being used by each project, and in general becomes an ecosystem problem, with which (IMO) the standard should maintain a clear separation in order to prevent unnecessary complexity in projects that don't need such functionality.
Hi. Consider this situation: program X depends on libraries Y and Z, Y depends on library T 1.0 and Z depends on library T 2.0. Versions T 1.0 and T 2.0 export same symbols (but they are implemented differently). As well as I understand usual C++ package managers simply refuse to build X in this situation. Can we somehow solve this problem? For example, using modules?
Std-Proposals mailing list