|
constexpr hash_value_t | operator() () const noexcept |
|
hash_value_t | operator() (const base_type_info_t &a) const noexcept |
|
template<class T >
requires able<T> |
constexpr auto | operator() (const T &a) const noexcept(nothrow< T >) |
|
template<class T > |
constexpr hash_base_t | get_hash_in_base_type (const T &a) const noexcept(nothrow< T >) |
|
template<class T > |
constexpr hash_value_t | with_calculated_before (hash_value_t before, size_t before_size, const T *a, size_t size) const noexcept |
|
constexpr hash_value_t | repeat_times (hash_value_t value, size_t size) const noexcept |
|
template<class T > |
constexpr hash_value_t | repeat_times (T &&value, size_t size) const noexcept |
|
template<class T > |
constexpr hash_value_t | operator() (const T *a, size_t size) const noexcept(nothrow< const T >) |
|
hash_value_t | merge_array_hash_results (hash_value_t before, size_t before_size, hash_value_t after, size_t after_size) const noexcept |
|
template<class T >
requires is_not_signal_value_for_array_like<T> |
constexpr hash_value_t | operator() (const array_like_view_t< T > &a) const noexcept(nothrow< T >) |
|
template<class T >
requires is_not_signal_value_for_array_like<T> |
constexpr hash_value_t | with_calculated_before (hash_value_t before, size_t before_size, const array_like_view_t< T > &a) const noexcept |
|
◆ get_hash_in_base_type()
Computes the hash of a value in the base type.
- 参数
-
- 返回
- The hash of the value in the base type.
在文件 all_defs.cpp 第 10976 行定义.
10976 {
10977 return hash(
a)._value;
10978 }
struct elc::defs::base::hash_n::hash_t hash
constexpr T down_cast(U a) noexcept
向下转型至
◆ merge_array_hash_results()
合并两个数据段的hash结果,好似计算这两个数据段合并后的hash结果一般
- 参数
-
before | The first hash value. |
before_size | The size of the first hash value. |
after | The second hash value. |
after_size | The size of the second hash value. |
- 返回
- The merged hash value.
在文件 all_defs.cpp 第 11071 行定义.
11073 {
11075 }
constexpr auto rotl(const T v, const auto R) noexcept
位操作:循环左移 不使用std版本而是自己写的原因:std版本右操作数只能是int而不能是size_t或别的,标准会傻逼
◆ operator()() [1/5]
Computes the hash value of nothing
.
- 返回
- The hash value of
nothing
.
在文件 all_defs.cpp 第 10929 行定义.
◆ operator()() [2/5]
template<
class T >
requires is_not_signal_value_for_array_like<T>
计算一个 array_like_view_t<T> 对象的哈希值。
- 参数
-
a | array_like_view_t<T> 对象。 |
- 返回
- array_like_view_t<T> 对象的哈希值。
在文件 all_defs.cpp 第 11083 行定义.
11083 {
11084 return hash(
a.begin(),
a.size());
11085 }
◆ operator()() [3/5]
◆ operator()() [4/5]
Computes the hash value of a value.
- 参数
-
- 返回
- The hash value of the value.
在文件 all_defs.cpp 第 10950 行定义.
10950 {
10951 #undef hash
10957 return unstable_hash_value_t(
a);
10961 return hash_value_t(
a);
10962 else{
10963 template_error(
"Please overload the function hash in the namespace where this type is defined.");
10964 return hash_value_t{};
10965 }
10966 #define hash operator()
10967 }
#define was_not_an_ill_form(...)
#define template_error(reason)
constexpr hash_value_t pointer_hash(T *a) noexcept
◆ operator()() [5/5]
Computes the hash value of an array of elements.
- 参数
-
a | The array of elements. |
size | The size of the array. |
- 返回
- The hash value of the array.
在文件 all_defs.cpp 第 11058 行定义.
11058 {
11060 }
constexpr hash_value_t with_calculated_before(hash_value_t before, size_t before_size, const T *a, size_t size) const noexcept
◆ repeat_times() [1/2]
计算此hash重复N次的数组的hash结果
- 参数
-
value | The hash value to repeat. |
size | The number of times to repeat the hash value. |
- 返回
- The repeated hash value.
在文件 all_defs.cpp 第 11007 行定义.
11007 {
11009 {
11010
11011
11018
11020 if(value._value==0 || size==0)
11026 }
11027 if(!size)
11029 }
11031 while(size--){
11034 }
11036 }
if constexpr(noexcept_stream_class< stream_T >)
#define pop_msvc_warning()
#define push_and_disable_msvc_warning(...)
constexpr size_t size(::size_t v)
constexpr size_t BIT_POSSIBILITY
每个bit(不是字节)的可能性 为什么c艹委员会不定义这个?
◆ repeat_times() [2/2]
计算此hash重复N次的数组的hash结果
- 参数
-
value | The hash value to repeat. |
size | The number of times to repeat the hash value. |
- 返回
- The repeated hash value.
在文件 all_defs.cpp 第 11046 行定义.
11046 {
11048 }
constexpr hash_value_t repeat_times(hash_value_t value, size_t size) const noexcept
◆ with_calculated_before() [1/2]
template<
class T >
requires is_not_signal_value_for_array_like<T>
计算一个 array_like_view_t<T> 对象的哈希值,并在哈希值之前进行计算。
- 参数
-
before | 用来作为计算基础的哈希值。 |
before_size | 用来作为计算基础的哈希值的大小。 |
a | 要计算哈希值的 array_like_view_t<T> 对象。 |
- 返回
- array_like_view_t<T> 对象的哈希值。
在文件 all_defs.cpp 第 11096 行定义.
◆ with_calculated_before() [2/2]
从某个起始点算起的hash
- 参数
-
before | The hashed value before this hash. |
before_size | The size of the hashed value before this hash. |
a | The sequence of values. |
size | The number of values in the sequence. |
- 返回
- The hash value of the sequence.
在文件 all_defs.cpp 第 10990 行定义.
10990 {
10993 while(size--){
10996 }
10998 }
constexpr hash_base_t get_hash_in_base_type(const T &a) const noexcept(nothrow< T >)
◆ able
constexpr bool elc::defs::base::hash_n::hash_t::able =able_helper<T>() |
|
staticconstexpr |
◆ nothrow
constexpr bool elc::defs::base::hash_n::hash_t::nothrow =nothrow_helper<T>() |
|
staticconstexpr |
该结构体的文档由以下文件生成: