Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use _MSVC_LANG macro when compiled with MSVC for C++ standard detection #392

Merged
merged 1 commit into from
Sep 8, 2024

Conversation

fktn-k
Copy link
Owner

@fktn-k fktn-k commented Sep 8, 2024

Although this library depends on C++11 by default, some implementations are switched based on the value of the __cplusplus macro to utilize some nice-to-have features available since C++14 or better.
However, the MSVC compilers don't set an appropriate value to that macro if the /Zc:__cplusplus option isn't specified.
That issue forces those who use this library with some MSVC compiler to stick to C++11 features even if they explicitly use C++14 or better by specifying options like /std:c++14.

As explicitly described here, the _MSVC_LANG macro is always set a correct value.
So, as many other C++ libraries do, this library refers to _MSVC_LANG if some MSVC compiler is used to compile, and now detects a correct C++ standard.
The updated behavior is tested in my local environment (Windows10, Visual Studio 2019).


Pull Request Checklist

Read the CONTRIBUTING.md file for detailed information.

  • Changes are described in the pull request or in a referenced issue.
  • The test suite compiles and runs without any error.
  • The code coverage on your branch is 100%.
  • The documentation is updated if you added/changed a feature.

Please don't

  • The C++11 support varies between different compilers and versions. Please note the list of supported compilers. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. Please refrain from proposing changes that work around these compiler's limitations with #ifdefs or other means.
  • Please refrain from proposing changes that would break YAML specifications. If you propose a conformant extension of YAML to be supported by the library, please motivate this extension.
  • Please do not open pull requests that address multiple issues.

@fktn-k fktn-k added the bug Something isn't working label Sep 8, 2024
@fktn-k fktn-k self-assigned this Sep 8, 2024
Copy link

github-actions bot commented Sep 8, 2024

:octocat: Upload Coverage Event Notification

Coverage data has been uploaded for the commit 25bb0a2ac28342a21871af2f9940901164ec89cf.
You can download the artifact which contains the same file uploaded to the Coveralls and its HTML version.

Name fkYAML_coverage.pr392.zip
ID 1905378319
URL https://github.com/fktn-k/fkYAML/actions/runs/10756731601/artifacts/1905378319

@fktn-k fktn-k merged commit c969f33 into develop Sep 8, 2024
165 checks passed
@fktn-k fktn-k deleted the use_msvc_lang_macro_with_msvc branch September 8, 2024 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant