35 lines
594 B
C++
Executable File
35 lines
594 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
|
|
|
|
namespace tjp::core {
|
|
|
|
template<typename T, typename F>
|
|
struct ByF {
|
|
typedef bool is_transparent;
|
|
|
|
[[no_unique_address]]
|
|
F f;
|
|
|
|
bool operator() (const T &lhs, const T &rhs) const
|
|
{
|
|
return f(lhs) < f(rhs);
|
|
}
|
|
|
|
template<typename R>
|
|
bool operator() (const T &lhs, const R &rhs) const
|
|
{
|
|
return f(lhs) < f(rhs);
|
|
}
|
|
|
|
template<typename R>
|
|
bool operator() (const R &lhs, const T &rhs) const
|
|
{
|
|
return f(lhs) < f(rhs);
|
|
}
|
|
} ;
|
|
|
|
}
|