nholthaus / units

a compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.
http://nholthaus.github.io/units/
MIT License
964 stars 137 forks source link

MSVC-specific Empty Baseclass Optimization activation. #317

Open Guillaume227 opened 1 year ago

Guillaume227 commented 1 year ago

Ensures sizof(unit type) is the same as sizeof(underlying_type), which was not the case on Windows on the v3.x branch. Without that fix I observed sizeof(meters) to be 8 as each units base class contributes at least one byte on top of the 4 bytes of a float.

According to this answer, that fix is valid since Visual Studio 2017 Update 2, which seems acceptable to me in term of backward compatibility for the new branch?

Extended test coverage accordingly.