PTL icon indicating copy to clipboard operation
PTL copied to clipboard

Windows min max macro imported unexpectedly

Open shangjiaxuan opened this issue 3 years ago • 2 comments

Describe the bug Building Geant4 version on windows imports min max macros from windows.h when using 2021.6.0 version of tbb on visual studio 16.11.1, which breaks code in PTL that uses std::min and std::max (e.g. in ThreadPool.hh line 468 in function void ThreadPool::execute_on_all_threads(FuncT&& _func)).

To Reproduce Description contains reproduction details.

Expected behavior Normal compilation.

Screenshots non

Putting this block (or NOMINMAX) somewhere in the code should solve the problem. Still locating the include location.

#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#endif

shangjiaxuan avatar May 19 '22 18:05 shangjiaxuan

Ugh, yeah I’ve run into this problem several times in other projects. I’ll get it fixed and make an appveyor script for CI on windows

jrmadsen avatar May 19 '22 18:05 jrmadsen

Located the position to be from the tbb include lines using static_asserts. WIN32_LEAN_AND_MEAN doesn't work, but NOMINMAX works.

shangjiaxuan avatar May 19 '22 18:05 shangjiaxuan