Annotate noexcept and constexpr with HEDLEY, and add interval containment, ChaCha, and the dyadic range tables.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
875f09fec1
commit
0d8a5a8131
97 changed files with 9212 additions and 1159 deletions
|
|
@ -35,6 +35,15 @@ struct cmp_t
|
|||
};
|
||||
inline constexpr cmp_t cmp{};
|
||||
|
||||
/// Prefix of an `idcf` comparison. `L` is the number of leading bits.
|
||||
template <std::size_t L>
|
||||
struct cmp_prefix_t
|
||||
{
|
||||
static constexpr std::size_t length = L;
|
||||
};
|
||||
template <std::size_t L>
|
||||
inline constexpr cmp_prefix_t<L> cmp_prefix{};
|
||||
|
||||
template <typename T>
|
||||
struct is_out : std::false_type
|
||||
{
|
||||
|
|
@ -53,10 +62,22 @@ struct is_cmp_target : std::bool_constant<std::is_same_v<std::decay_t<T>, cmp_t>
|
|||
template <typename T>
|
||||
inline constexpr bool is_cmp_target_v = is_cmp_target<T>::value;
|
||||
|
||||
template <typename T>
|
||||
struct is_cmp_prefix_target : std::false_type
|
||||
{
|
||||
};
|
||||
template <std::size_t L>
|
||||
struct is_cmp_prefix_target<cmp_prefix_t<L>> : std::true_type
|
||||
{
|
||||
};
|
||||
template <typename T>
|
||||
inline constexpr bool is_cmp_prefix_target_v =
|
||||
is_cmp_prefix_target<std::decay_t<T>>::value;
|
||||
|
||||
/// True for channel tags that must not bind as the key in classic eval_*.
|
||||
template <typename T>
|
||||
inline constexpr bool is_eval_channel_tag_v =
|
||||
is_out_v<T> || is_cmp_target_v<T>;
|
||||
is_out_v<T> || is_cmp_target_v<T> || is_cmp_prefix_target_v<T>;
|
||||
|
||||
template <typename T, typename = void>
|
||||
struct looks_like_dpf_key : std::false_type
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue