Ignore:
Timestamp:
2018-07-05T21:41:23Z (7 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
edd2e61
Parents:
aedae28
git-author:
Dzejrou <dzejrou@…> (2018-05-10 00:36:39)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:23)
Message:

cpp: added hash support for smart pointers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/impl/memory.hpp

    raedae28 r999cb48  
    3131
    3232#include <internal/aux.hpp>
     33#include <internal/functional/hash.hpp>
    3334#include <internal/memory/allocator_arg.hpp>
    3435#include <internal/memory/addressof.hpp>
     
    10981099        return !(nullptr < ptr);
    10991100    }
     1101
     1102    /**
     1103     * 20.8.2.7, smart pointer hash support:
     1104     */
     1105
     1106    template<class T, class D>
     1107    struct hash<unique_ptr<T, D>>
     1108    {
     1109        size_t operator()(const unique_ptr<T, D>& ptr) const noexcept
     1110        {
     1111            return hash<typename unique_ptr<T, D>::pointer>{}(ptr.get());
     1112        }
     1113
     1114        using argument_type = unique_ptr<T, D>;
     1115        using result_type   = size_t;
     1116    };
    11001117}
    11011118
Note: See TracChangeset for help on using the changeset viewer.