llarp/util/compare_ptr.hpp
Namespaces
| Name |
|---|
| llarp [crypto.hpp] |
Classes
| Name | |
|---|---|
| struct | llarp::ComparePtr type for comparing smart pointer's managed values |
| struct | llarp::CompareWeakPtr type for comparing weak_ptr by value |
Source code
#pragma once
#include <functional>
#include <memory>
namespace llarp
{
template <typename Ptr_t, typename Compare = std::less<>>
struct ComparePtr
{
bool
operator()(const Ptr_t& left, const Ptr_t& right) const
{
if (left && right)
return Compare()(*left, *right);
return Compare()(left, right);
}
};
template <typename Type_t, typename Compare = std::less<>>
struct CompareWeakPtr
{
bool
operator()(const std::weak_ptr<Type_t>& left, const std::weak_ptr<Type_t>& right) const
{
return ComparePtr<std::shared_ptr<Type_t>, Compare>{}(left.lock(), right.lock());
}
};
} // namespace llarp
Updated on 2026-01-10 at 22:49:45 +0000