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