mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-30 00:50:37 +08:00
d4a0bf86d6
On Windows, including the "windows.h" header defines an enormous number of symbols; some of which are macros with common names. In particular, "ERROR" and "min" and "max" get defined. This causes clashes when user code references these names in a context other than the intended use in windows.h. To deal with this, the Microsoft engineers added the ability to control the definition of these symbols by adding extra defines. In particular, including windows.h in the following way #define NOGDI #define NOMINMAX will reduce the number of macros defined. This way they will not conflict with other uses in Ceres. For example, numeric_limits<double>::max() is impossible to call without defining NOMINMAX. Change-Id: I166f5d3bb6dc0e2e4b2ebf800fb19e49206f7874