You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The non-Standard constructor and conversion function are likely to change the behavior of overload resolution, so perhaps they should be eliminated. But they're currently appearing in the DLL interface and thus can't be removed until vNext.
This PR attempts to make them only exist when building the STL. The newly added Standard default constructor and _Get_index function are templates to avoid alternating DLL interface. (I'm still unsure whether this is sufficient or necessary.)
frederick-vs-ja
changed the title
<xlocale>: Hide some non-Standard functions from locale::id<xlocale>: Hide some non-Standard functions of locale::idNov 6, 2024
The non-Standard constructor and conversion function are likely to
change the behavior of overload resolution, so perhaps they should
be eliminated. But they're currently appearing in the DLL interface and
thus can't be removed until vNext.
This PR attempts to make them only exist when building the STL. The
newly added Standard default constructor and `_Get_index` function are
templates to avoid alternating DLL interface.
(unsure whether this is sufficient or necessary)
frederick-vs-ja
changed the title
<xlocale>: Hide some non-Standard functions of locale::id<locale>: Hide some non-Standard functions of locale::idNov 6, 2024
The newly added Standard default constructor and _Get_index function are templates to avoid alternating DLL interface. (I'm still unsure whether this is sufficient or necessary.)
When a class is separately compiled, as class _CRTIMP2_PURE_IMPORT id is, then any ordinary member functions will be separately compiled and dllexported.
As always, you can check by running dumpbin /exports on the DLL and comparing before-and-after.
Edit: This change is special because of the default argument (review comment incoming).
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The non-Standard constructor and conversion function are likely to change the behavior of overload resolution, so perhaps they should be eliminated. But they're currently appearing in the DLL interface and thus can't be removed until vNext.
This PR attempts to make them only exist when building the STL. The newly added Standard default constructor and
_Get_index
function are templates to avoid alternating DLL interface. (I'm still unsure whether this is sufficient or necessary.)