mirror of
https://github.com/mpusz/mp-units.git
synced 2026-07-08 01:20:54 +02:00
00b5ca8b65
MSVC's Debug constant evaluator can't get through `std::basic_format_string`'s
consteval ctor when the format args carry mp-units's deeply nested template
types — it trips C7595 ("call to immediate function is not a constant
expression"). Release works; switching to {fmt} (`std_format=False`) works.
Only `MSVC + Debug + std_format=True` is broken.
Express that constraint at every layer so a local repro and CI fail uniformly:
* `Configuration.is_supported` (job_matrix.py): rejects the combination, so
the matrix generator skips it.
* `make_msvc_config(...)` consumer (generate-job-matrix.py): extends the
{fmt}-fallback filter to include MSVC Debug, ensuring the matrix still
covers MSVC Debug — just with `std_format=False`.
* `conanfile.validate()`: rejects an install with a clear message pointing
the user at `std_format=False` or Release, so a local repro fails fast
at install time instead of much later during compilation.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>