Skip to content

[Bug]: MSVC throws internal compiler error when using quantity_point<deg_C> #772

@Wyverex42

Description

@Wyverex42

Bug Description

Observed on both MSVC 19.44.35224 and 19.50.35728.

When initializing a quantity_point<deg_C>, MSVC throws an internal error:

C:\PROGRA1\MICROS4\18\PROFES1\VC\Tools\MSVC\14501.357\bin\Hostx64\x64\cl.exe /nologo /TP -DFMT_SHARED -DMP_UNITS_API_CONTRACTS=2 -DMP_UNITS_API_NATURAL_UNITS=1 -DMP_UNITS_API_NO_CRTP=0 -DMP_UNITS_API_STD_FORMAT=0 -DMP_UNITS_API_THROWING_CONSTRAINTS=0 -DMP_UNITS_HOSTED=1 -D_HAS_EXCEPTIONS=0 -D_MBCS -ID:\dev\foundation-sdk\libs\log\include -ID:\dev\foundation-sdk\libs\core\include -external:ID:\dev\foundation-sdk\build\dev\vcpkg_installed\x64-windows\include -external:W0 /DWIN32 /D_WINDOWS /Ob0 /Od -std:c++20 -MDd -RTC1 -Zi /W4 /permissive- /w14242 /w14254 /w14263 /w14265 /w14287 /w14296 /w14311 /w14545 /w14546 /w14547 /w14549 /w14555 /w14619 /w14640 /w14826 /w14905 /w14906 /w14928 /WX /EHs-c- /utf-8 /showIncludes @examples\foundation-example-app\CMakeFiles\foundation-example-app.dir\main.cpp.obj.modmap /Foexamples\foundation-example-app\CMakeFiles\foundation-example-app.dir\main.cpp.obj /Fdexamples\foundation-example-app\CMakeFiles\foundation-example-app.dir\ /FS -c D:\dev\foundation-sdk\examples\foundation-example-app\main.cpp
D:\dev\foundation-sdk\build\dev\vcpkg_installed\x64-windows\include\mp-units/framework/reference.h(54): fatal error C1001: Internal compiler error.

Is there any workaround for this? Unfortunately this looks like stopping mp-units dead in its tracks for our use case based on Unreal on Windows.

Steps to Reproduce

// Minimal reproducible example
#include <mp-units/systems/si.h>

int main()
{
	using namespace mp_units::si::unit_symbols;
	mp_units::quantity_point<deg_C> temp = mp_units::point<deg_C>(100);
	return 0;
}

🚀 Compiler Explorer Link (Recommended)

No response

Compiler

MSVC 194

C++ Standard

C++20

mp-units Version

2.5.0 via vcpkg

Build Configuration

  • Using Conan
  • Using CMake directly
  • Header-only mode
  • C++ modules enabled
  • Freestanding mode
  • Debug build
  • Release build

Additional Context

No response

Checklist

  • I have read the documentation and checked existing issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageTriage a new issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions