fix compilation of heap specific STL allocators for vs2017

This commit is contained in:
Daan Leijen 2023-02-07 11:07:52 -08:00
parent 507f75b56c
commit 6a230f8329
2 changed files with 7 additions and 1 deletions

View file

@ -470,7 +470,9 @@ template<class T1,class T2> bool operator==(const mi_stl_allocator<T1>& , const
template<class T1,class T2> bool operator!=(const mi_stl_allocator<T1>& , const mi_stl_allocator<T2>& ) mi_attr_noexcept { return false; } template<class T1,class T2> bool operator!=(const mi_stl_allocator<T1>& , const mi_stl_allocator<T2>& ) mi_attr_noexcept { return false; }
#if (__cplusplus >= 201103L) || (_MSC_VER > 1900) // C++11 #if (__cplusplus >= 201103L) || (_MSC_VER >= 1920) // C++11, at least vs2019
#define MI_HAS_HEAP_STL_ALLOCATOR 1
#include <memory> // std::shared_ptr #include <memory> // std::shared_ptr
// Common base class for STL allocators in a specific heap // Common base class for STL allocators in a specific heap

View file

@ -130,6 +130,7 @@ static bool test_stl_allocator2() {
return vec.size() == 0; return vec.size() == 0;
} }
#if MI_HAS_HEAP_STL_ALLOCATOR
static bool test_stl_allocator3() { static bool test_stl_allocator3() {
std::vector<int, mi_heap_stl_allocator<int> > vec; std::vector<int, mi_heap_stl_allocator<int> > vec;
vec.push_back(1); vec.push_back(1);
@ -157,14 +158,17 @@ static bool test_stl_allocator6() {
vec.pop_back(); vec.pop_back();
return vec.size() == 0; return vec.size() == 0;
} }
#endif
static void test_stl_allocators() { static void test_stl_allocators() {
test_stl_allocator1(); test_stl_allocator1();
test_stl_allocator2(); test_stl_allocator2();
#if MI_HAS_HEAP_STL_ALLOCATOR
test_stl_allocator3(); test_stl_allocator3();
test_stl_allocator4(); test_stl_allocator4();
test_stl_allocator5(); test_stl_allocator5();
test_stl_allocator6(); test_stl_allocator6();
#endif
} }
// issue 445 // issue 445