In Linux, the GCC compiler does not add the return type to the mangled name of a function, not causing an ABI incompatibility error in cases that a major version changes. Because of this, I usually use a abi_tag in a inline namespace depending on the major version to force this kind of behavior.
How MSVC2017 mangle function names in Windows? I need to add something similar to abi_tag in the inline namespace to replicate this behavior?
MSVC mangled names include the return type. See Visual C++ name mangling for gory details.