Fix: Build issue on windows

tbb/enumerable_thread_specific.h drags in windows.h
which will define min/max macro's unless you politely
ask it not to.

it's bit of an eyesore, but it is what it is
This commit is contained in:
Ray Molenkamp 2022-02-23 12:27:02 -07:00
parent 572acba5d1
commit 6ca85a8cf1
1 changed files with 19 additions and 1 deletions

View File

@ -3,7 +3,25 @@
#pragma once
#ifdef WITH_TBB
# include <tbb/enumerable_thread_specific.h>
# ifdef WITH_TBB
/* Quiet top level deprecation message, unrelated to API usage here. */
# if defined(WIN32) && !defined(NOMINMAX)
/* TBB includes Windows.h which will define min/max macros causing issues
* when we try to use std::min and std::max later on. */
# define NOMINMAX
# define TBB_MIN_MAX_CLEANUP
# endif
# include <tbb/enumerable_thread_specific.h>
# ifdef WIN32
/* We cannot keep this defined, since other parts of the code deal with this on their own, leading
* to multiple define warnings unless we un-define this, however we can only undefine this if we
* were the ones that made the definition earlier. */
# ifdef TBB_MIN_MAX_CLEANUP
# undef NOMINMAX
# endif
# endif
# endif
#endif
#include <atomic>