Skip to content

Conversation

@N-Dekker
Copy link
Contributor

@N-Dekker N-Dekker commented Feb 14, 2025

The added "test_release_x64_legacy_lambda.vcxproj" is basically just a copy of "test_release_x64.vcxproj", but it has an extra property ConformanceMode, set to Default. Which triggers MSVC to use its "legacy lambda processor".

With such a configuration, the user may need to define TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA.

Update, March 4, 2025: The pull request now also adds /permissive builds to the CI, using TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA to prevent compile errors.

Follow-up to commit cbc00d6 "add TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA workaround MSVC error C2057 (#247)"

  • I've read CONTRIBUTING.md
  • I've rebased my changes against the current HEAD of origin/master (if necessary)
  • I've added new test cases to verify my change
  • I've regenerated toml.hpp (how-to)
  • I've updated any affected documentation
  • I've rebuilt and run the tests with at least one of:
    • Clang 8 or higher
    • GCC 8 or higher
    • MSVC 19.20 (Visual Studio 2019) or higher
  • I've added my name to the list of contributors in README.md

@N-Dekker
Copy link
Contributor Author

@marzer Does the CI build your Visual Studio Solution file, "toml++.sln"?

@marzer
Copy link
Owner

marzer commented Feb 15, 2025

Nope. That's just something I use when I work on it locally.

Though, these days I don't use VS as much and am starting to prefer a non VS-oriented workflow, so I wouldn't worry about it tbh.

The windows runner uses meson, just like the Linux ones. I guess you'd need to add a new test exe with different options in for the windows run.

The added "test_release_x64_legacy_lambda.vcxproj" is basically just a copy of "test_release_x64.vcxproj", but it has an extra property `ConformanceMode`, set to `Default`. Which triggers MSVC to use its "legacy lambda processor".

With such a configuration, the user may need to define `TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA`.

Follow-up to commit cbc00d6 "add TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA workaround MSVC error C2057 (marzer#247)"
@N-Dekker N-Dekker force-pushed the test-MSVC-legacy-lambda-processor branch 4 times, most recently from b326539 to 7a7f990 Compare March 4, 2025 16:16
Added "permissive" option to the ci matrix, for windows.

Used `TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA` to avoid the compile errors reported by Kevin Dick, Jan 19, 2024, at issue marzer#219
@N-Dekker N-Dekker force-pushed the test-MSVC-legacy-lambda-processor branch from 7a7f990 to d9df743 Compare March 4, 2025 16:29
@N-Dekker
Copy link
Contributor Author

N-Dekker commented Mar 5, 2025

@marzer I think this pull request is ready now, as it tests both /permissive (including the old lambda processor) and /permissive- (non-permissive, including the new lambda processor) at the CI:

Non-permissive conformance mode:

  • ci / windows (debug, false)
  • ci / windows (release, false)

Permissive conformance mode + TOML_DISABLE_CONDITIONAL_NOEXCEPT_LAMBDA:

  • ci / windows (debug, true)
  • ci / windows (release, true)

Minor issue: somehow, adding /permissive triggers some compiler warnings at the CI for windows (debug, true) and (release, true), saying:

cl : Command line warning D9025 : overriding '/permissive-' with '/permissive'

Does that bother you? I think these warnings can be ignored safely. If you want to have them fixed anyway, do you have a suggestion how?

@N-Dekker N-Dekker marked this pull request as ready for review March 5, 2025 16:44
@marzer
Copy link
Owner

marzer commented Mar 14, 2025

Sorry, missed that you'd updated this.

Warning about the CLI argument is fine, no problem. Happy to merge this one as-is. Thanks! 🎉

@marzer marzer merged commit 4295f90 into marzer:master Mar 14, 2025
11 checks passed
@N-Dekker
Copy link
Contributor Author

@marzer Thanks again for merging, Mark! I hope you can still consider adding a new tag to the master branch. For our project (elastix), we prefer to use tagged versions of third party libraries. And it has been a while already, the last toml++ tag appears 30 commits and 17 months ago: https://github.com/marzer/tomlplusplus/tags

@marzer
Copy link
Owner

marzer commented Mar 15, 2025

Yeah, I do intend to make a new release soon, no worries. Will try to do it in the next week or so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants