diff --git a/include/bx/maputil.h b/include/bx/maputil.h index f334aef..21e6067 100644 --- a/include/bx/maputil.h +++ b/include/bx/maputil.h @@ -24,6 +24,35 @@ namespace bx typename MapType::value_type pair(_key, _value); return _map.insert(it, pair); } + + template + bool mapRemove(MapType& _map, const typename MapType::value_type::first_type& _first) + { + typename MapType::const_iterator it = _map.find(_first); + if (it != _map.end() ) + { + _map.erase(it); + return true; + } + + return false; + } + + template + bool mapRemove(MapType& _map, const typename MapType::value_type::second_type& _second) + { + for (typename MapType::const_iterator it = _map.begin(), itEnd = _map.end(); it != itEnd; ++it) + { + if (it->second == _second) + { + _map.erase(it); + return true; + } + } + + return false; + } + } // namespace bx #endif // BX_MAPUTIL_H_HEADER_GUARD diff --git a/include/tinystl/hash_base.h b/include/tinystl/hash_base.h index 73b5c9e..f20675d 100644 --- a/include/tinystl/hash_base.h +++ b/include/tinystl/hash_base.h @@ -33,6 +33,9 @@ namespace tinystl { template struct pair { + typedef Key first_type; + typedef Value second_type; + pair(); pair(const Key& key, const Value& value); diff --git a/scripts/toolchain.lua b/scripts/toolchain.lua index 0cabfae..0af163c 100755 --- a/scripts/toolchain.lua +++ b/scripts/toolchain.lua @@ -47,6 +47,7 @@ function toolchain(_buildDir, _libDir) allowed = { { "vs2012-clang", "Clang 3.6" }, { "vs2013-clang", "Clang 3.6" }, + { "vs2015-clang", "Clang 3.9" }, { "vs2012-xp", "Visual Studio 2012 targeting XP" }, { "vs2013-xp", "Visual Studio 2013 targeting XP" }, { "vs2015-xp", "Visual Studio 2015 targeting XP" }, @@ -339,7 +340,11 @@ function toolchain(_buildDir, _libDir) elseif _ACTION == "vs2012" or _ACTION == "vs2013" or _ACTION == "vs2015" then if (_ACTION .. "-clang") == _OPTIONS["vs"] then - premake.vstudio.toolset = ("LLVM-" .. _ACTION) + if "vs2015-clang" == _OPTIONS["vs"] then + premake.vstudio.toolset = ("LLVM-vs2014") + else + premake.vstudio.toolset = ("LLVM-" .. _ACTION) + end location (path.join(_buildDir, "projects", _ACTION .. "-clang")) elseif "winphone8" == _OPTIONS["vs"] then