35 lines
638 B
C++
Executable File
35 lines
638 B
C++
Executable File
// License: Modified MIT (NON-AI)
|
|
// See the LICENSE file in the root directory for license information.
|
|
// Copyright 2025 Timothy Prepscius
|
|
|
|
#pragma once
|
|
|
|
#include <tjp/core/ptr/Ptr.hpp>
|
|
|
|
namespace tjp::core {
|
|
|
|
template<typename T>
|
|
struct ByStrongPtrId {
|
|
typedef bool is_transparent;
|
|
|
|
bool operator() (const StrongPtr<T> &lhs, const StrongPtr<T> &rhs) const
|
|
{
|
|
return lhs->id < rhs->id;
|
|
}
|
|
|
|
|
|
template<typename R>
|
|
bool operator() (const StrongPtr<T> &lhs, const R &rhs) const
|
|
{
|
|
return lhs->id < rhs;
|
|
}
|
|
|
|
template<typename R>
|
|
bool operator() (const R &lhs, const StrongPtr<T> &rhs) const
|
|
{
|
|
return lhs < rhs->id;
|
|
}
|
|
} ;
|
|
|
|
}
|