Ignore:
Timestamp:
2018-07-05T21:41:23Z (6 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/internal/memory/shared_ptr.hpp

    raedae28 r999cb48  
    3232#include <exception>
    3333#include <internal/functional/arithmetic_operations.hpp>
     34#include <internal/functional/hash.hpp>
    3435#include <internal/memory/allocator_arg.hpp>
    3536#include <internal/memory/shared_payload.hpp>
     
    605606        return os << ptr.get();
    606607    }
     608
     609    /**
     610     * 20.8.2.5, class template enable_shared_from_this:
     611     */
     612
     613    // TODO: implement
     614
     615    /**
     616     * 20.8.2.6, shared_ptr atomic access
     617     */
     618
     619    // TODO: implement
     620
     621    /**
     622     * 20.8.2.7, smart pointer hash support:
     623     */
     624
     625    template<class T>
     626    struct hash<shared_ptr<T>>
     627    {
     628        size_t operator()(const shared_ptr<T>& ptr) const noexcept
     629        {
     630            return hash<T*>{}(ptr.get());
     631        }
     632
     633        using argument_type = shared_ptr<T>;
     634        using result_type   = size_t;
     635    };
    607636}
    608637
Note: See TracChangeset for help on using the changeset viewer.