File tree Expand file tree Collapse file tree 2 files changed +15
-18
lines changed
Expand file tree Collapse file tree 2 files changed +15
-18
lines changed Original file line number Diff line number Diff line change 99#include < support/lockedpool.h>
1010#include < support/cleanse.h>
1111
12+ #include < memory>
1213#include < string>
1314
1415//
1718//
1819template <typename T>
1920struct secure_allocator : public std ::allocator<T> {
20- // MSVC8 default copy constructor is broken
21- typedef std::allocator<T> base;
22- typedef typename base::size_type size_type;
23- typedef typename base::difference_type difference_type;
24- typedef typename base::pointer pointer;
25- typedef typename base::const_pointer const_pointer;
26- typedef typename base::reference reference;
27- typedef typename base::const_reference const_reference;
28- typedef typename base::value_type value_type;
21+ using base = std::allocator<T>;
22+ using traits = std::allocator_traits<base>;
23+ using size_type = typename traits::size_type;
24+ using difference_type = typename traits::difference_type;
25+ using pointer = typename traits::pointer;
26+ using const_pointer = typename traits::const_pointer;
27+ using value_type = typename traits::value_type;
2928 secure_allocator () noexcept {}
3029 secure_allocator (const secure_allocator& a) noexcept : base(a) {}
3130 template <typename U>
Original file line number Diff line number Diff line change 1313
1414template <typename T>
1515struct zero_after_free_allocator : public std ::allocator<T> {
16- // MSVC8 default copy constructor is broken
17- typedef std::allocator<T> base;
18- typedef typename base::size_type size_type;
19- typedef typename base::difference_type difference_type;
20- typedef typename base::pointer pointer;
21- typedef typename base::const_pointer const_pointer;
22- typedef typename base::reference reference;
23- typedef typename base::const_reference const_reference;
24- typedef typename base::value_type value_type;
16+ using base = std::allocator<T>;
17+ using traits = std::allocator_traits<base>;
18+ using size_type = typename traits::size_type;
19+ using difference_type = typename traits::difference_type;
20+ using pointer = typename traits::pointer;
21+ using const_pointer = typename traits::const_pointer;
22+ using value_type = typename traits::value_type;
2523 zero_after_free_allocator () noexcept {}
2624 zero_after_free_allocator (const zero_after_free_allocator& a) noexcept : base(a) {}
2725 template <typename U>
You can’t perform that action at this time.
0 commit comments