26#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER < 1800 
   29#  define roundf(x) (floorf(x + 0.5f)) 
   30#  define round(x)  (floorf(x + 0.5)) 
   38#if defined(WIN32) && defined(DEBUG) 
   39#  define WIN32_LEAN_AND_MEAN 
   43#if (defined(__linux__) && defined(__GLIBC__) && defined(__GLIBC_MINOR__)) || defined(__NetBSD__) || defined(__APPLE__) || defined(__sun) 
   47#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) 
   49#  include <pthread_np.h> 
   53#  include <kernel/scheduler.h> 
   58#if defined(_MSC_VER) && defined(DEBUG) 
   59#  define WIN32_LEAN_AND_MEAN 
   65    static void setThreadName(
const char *name)
 
   67        const DWORD MS_VC_EXCEPTION=0x406D1388;
 
   69        typedef struct tagTHREADNAME_INFO
 
   86            RaiseException( MS_VC_EXCEPTION, 0, 
sizeof(info)/
sizeof(ULONG_PTR),
 
   89        __except(EXCEPTION_EXECUTE_HANDLER)
 
   95    static void setThreadName(
const char* name)
 
   97#if defined(__linux__) && defined(__GLIBC__) && defined(__GLIBC_MINOR__) 
   98#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 11 || defined(__sun) 
   99        pthread_setname_np(pthread_self(), name);
 
  101#elif defined(__FreeBSD__) || defined(__DragonFly__) 
  102        pthread_set_name_np(pthread_self(), name);
 
  103#elif defined(__NetBSD__) 
  104        pthread_setname_np(pthread_self(), 
"%s", 
const_cast<char *
>(name));
 
  105#elif defined(__OpenBSD__) 
  106        pthread_set_name_np(pthread_self(), 
const_cast<char *
>(name));
 
  107#elif defined(__APPLE__) 
  108        pthread_setname_np(name);
 
  109#elif defined(__HAIKU__) 
  110        rename_thread(find_thread(
nullptr), name);
 
Visual studio workarounds in one place Note that Visual Studio 2013 does have the maths functions def...
Definition: vs.hpp:57