File: pmr.cc

package info (click to toggle)
parallel-hashmap 1.4.1%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,872 kB
  • sloc: cpp: 20,492; ansic: 1,114; python: 492; makefile: 85; haskell: 56; perl: 43; sh: 23
file content (33 lines) | stat: -rw-r--r-- 894 bytes parent folder | download
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)
    {
    }
};