From b625461132b67a7a6b0429dd0091bc0643683a69 Mon Sep 17 00:00:00 2001 From: John Emmas Date: Sat, 6 Mar 2021 11:12:02 +0000 Subject: [PATCH] Guard some code which isn't currently buildable with VS2019 For some unknown reason, VC++2019 won't let us take the address of std::list::unique() - although other std::list members seem okay. I've spent weeks tracking this down but there's no fix available AFAICT. I've flagged it up to the MSVC development team - just don't hold your breath !! --- libs/lua/LuaBridge/detail/Namespace.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libs/lua/LuaBridge/detail/Namespace.h b/libs/lua/LuaBridge/detail/Namespace.h index fdb9e82012..f78c41ee64 100644 --- a/libs/lua/LuaBridge/detail/Namespace.h +++ b/libs/lua/LuaBridge/detail/Namespace.h @@ -1899,7 +1899,10 @@ public: { typedef std::list LT; return beginConstStdList (name) +#if !defined(_MSC_VER) || (_MSC_VER < 1900) + /* std::list::unique() got broken in later versions of MSVC */ .addFunction ("unique", (void (LT::*)())<::unique) +#endif .addFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addExtCFunction ("add", &CFunc::tableToList); } @@ -1926,7 +1929,10 @@ public: typedef T* TP; typedef std::list LT; return beginConstStdCPtrList (name) +#if !defined(_MSC_VER) || (_MSC_VER < 1900) + /* std::list::unique() got broken in later versions of MSVC */ .addFunction ("unique", (void (LT::*)())<::unique) +#endif .addExtCFunction ("push_back", &CFunc::pushbackptr); } @@ -1970,7 +1976,10 @@ public: .addPtrFunction ("empty", <::empty) .addPtrFunction ("size", <::size) .addPtrFunction ("reverse", <::reverse) +#if !defined(_MSC_VER) || (_MSC_VER < 1900) + /* std::list::unique() got broken in later versions of MSVC */ .addPtrFunction ("unique", (void (LT::*)())<::unique) +#endif .addPtrFunction ("push_back", (void (LT::*)(const T&))<::push_back) .addExtCFunction ("add", &CFunc::ptrTableToList) .addExtCFunction ("iter", &CFunc::ptrListIter)