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.

On Wed, 22 Jan 2020, 12:56 Askar Safin via Std-Proposals, <std-proposals@lists.isocpp.org> wrote:
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?

Askar Safin
--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals