LLNL / units

A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements
https://units.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
147 stars 26 forks source link

expression did not evaluate to a constant #321

Open StrikeByte opened 1 year ago

StrikeByte commented 1 year ago

The initialization of the time constants can lead to the following error when using msvc2019 "expression did not evaluate to a constant" when parentheses are replaced with curly brackets the problem does not occur

unit_definitions.hpp namespace time { constexpr precise_unit min{60.0, s}; //this fixes the problem for me constexpr precise_unit ms{0.001, s}; constexpr precise_unit ns{1e-9, s}; constexpr precise_unit hr{60.0, min}; constexpr precise_unit h{60.0, min}; constexpr precise_unit day{24.0, hr}; constexpr precise_unit week{7.0, day}; constexpr precise_unit yr{8760.0, hr}; // median calendar year; constexpr precise_unit fortnight{14, day}; ...

phlptp commented 1 year ago

what compiler settings are you using that lead to the error? We should change those to use brackets and I will soon, but I regularly compile and test on visual studio 2019 and have never see any issue, so I would like to understand the settings that led to an issue on your system.

StrikeByte commented 1 year ago

The build setup I use is Qt 6.5.1 MSVC2019 x64 (debug build) with cmake I don't think it is compiler setting specific. The project did build before I included the units into another library of the project.

The build settings are default Qt settings

phlptp commented 1 year ago

Are you using main or the latest release?

phlptp commented 12 months ago

@StrikeByte have you tried again with the current main branch after the #322 merge?