From 1695e2851de295b910fa741ff1d75a20efbc4db1 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 28 Sep 2004 21:48:47 +0000 Subject: [PATCH] added wxPtrToUInt() to cast pointer to an integer type without warnings git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/defs.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/wx/defs.h b/include/wx/defs.h index 56edd14839..92167acc7d 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -740,6 +740,24 @@ typedef wxUint32 wxDword; #error "Pointers can't be stored inside integer types." #endif +/* And also define a simple function to cast pointer to it. */ +inline wxUIntPtr wxPtrToUInt(void *p) +{ + // VC++ 7.1 gives warnings about casts such as below even when they're + // explicit with /Wp64 option, suppress them as we really know what we're + // doing here +#ifdef __VISUALC__ + #pragma warning(disable: 4311) /* pointer truncation from '' to '' */ +#endif + + return wx_reinterpret_cast(wxUIntPtr, p); + +#ifdef __VISUALC__ + #pragma warning(default: 4311) +#endif +} + + /* 64 bit */ /* NB: we #define and not typedef wxLongLong_t because we want to be able to */