1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#if __has_include(<experimental/memory_resource>)
#include <experimental/memory_resource>
namespace std
{
namespace pmr = experimental::pmr;
}
#elif __has_include(<memory_resource>)
#include <memory_resource>
#elif
#error <memory_resource> is missing
#endif
#include <parallel_hashmap/phmap.h>
struct MyStruct
{
template<typename Key, typename Value>
using ParallelFlatHashMap = phmap::parallel_flat_hash_map<Key, Value, std::hash<Key>, std::equal_to<Key>,
std::pmr::polymorphic_allocator<std::pair<const Key, Value>>>;
ParallelFlatHashMap<uint32_t, uint32_t> hashMap;
// No compile errors
MyStruct()
{
}
// Compile errors
MyStruct(std::pmr::memory_resource* memoryResource = std::pmr::get_default_resource())
: hashMap(memoryResource)
{
}
};
|