diff --git a/include/hpcombi/epu8_impl.hpp b/include/hpcombi/epu8_impl.hpp index a143b81..2cc6c87 100644 --- a/include/hpcombi/epu8_impl.hpp +++ b/include/hpcombi/epu8_impl.hpp @@ -553,6 +553,7 @@ inline std::string to_string(HPCombi::epu8 const &a) { return ss.str(); } +//! This type appears in the doc because we provide an equal operator for HPCombi::epu8. template <> struct equal_to { bool operator()(const HPCombi::epu8 &lhs, const HPCombi::epu8 &rhs) const noexcept { @@ -560,6 +561,7 @@ template <> struct equal_to { } }; +//! This type appears in the doc because we provide a not_equal operator for HPCombi::epu8. template <> struct not_equal_to { bool operator()(const HPCombi::epu8 &lhs, const HPCombi::epu8 &rhs) const noexcept { @@ -567,6 +569,7 @@ template <> struct not_equal_to { } }; +//! This type appears in the doc because we provide a hash function for HPCombi::epu8. template <> struct hash { inline size_t operator()(HPCombi::epu8 a) const noexcept { unsigned __int128 v0 = simde_mm_extract_epi64(a, 0); @@ -583,10 +586,11 @@ template <> struct hash { } }; +//! This type appears in the doc because we provide a less operator for HPCombi::epu8. template <> struct less { // WARNING: due to endianness this is not lexicographic comparison, // but we don't care when using in std::set. - // 10% faster than calling the lexicographic comparison operator ! + // 10% faster than calling the lexicographic comparison operator! inline size_t operator()(const HPCombi::epu8 &v1, const HPCombi::epu8 &v2) const noexcept { simde__m128 v1v = simde__m128(v1), v2v = simde__m128(v2); diff --git a/include/hpcombi/perm16.hpp b/include/hpcombi/perm16.hpp index a412637..b0ff471 100644 --- a/include/hpcombi/perm16.hpp +++ b/include/hpcombi/perm16.hpp @@ -459,7 +459,9 @@ static_assert(std::is_trivial(), "Perm16 is not a trivial class !"); #include "perm16_impl.hpp" namespace std { +// Hash operators for Transf and Perm: +//! This type appears in the doc because we provide a hash function for HPCombi::PTransf16. template <> struct hash { //! A hash operator for #HPCombi::PTransf16 size_t operator()(const HPCombi::PTransf16 &ar) const { @@ -467,6 +469,7 @@ template <> struct hash { } }; +//! This type appears in the doc because we provide a hash function for HPCombi::Transf16. template <> struct hash { //! A hash operator for #HPCombi::Transf16 size_t operator()(const HPCombi::Transf16 &ar) const { @@ -474,6 +477,7 @@ template <> struct hash { } }; +//! This type appears in the doc because we provide a hash function for HPCombi::PPerm16. template <> struct hash { //! A hash operator for #HPCombi::PPerm16 size_t operator()(const HPCombi::PPerm16 &ar) const { @@ -481,6 +485,7 @@ template <> struct hash { } }; +//! This type appears in the doc because we provide a hash function for HPCombi::Perm16. template <> struct hash { //! A hash operator for #HPCombi::Perm16 size_t operator()(const HPCombi::Perm16 &ar) const { return uint64_t(ar); } diff --git a/include/hpcombi/perm_generic_impl.hpp b/include/hpcombi/perm_generic_impl.hpp index 5369387..72b5a45 100644 --- a/include/hpcombi/perm_generic_impl.hpp +++ b/include/hpcombi/perm_generic_impl.hpp @@ -119,6 +119,7 @@ bool PermGeneric::left_weak_leq(PermGeneric other) const { namespace std { +//! This type appears in the doc because we provide a hash function for HPCombi::PermGeneric. template struct hash> { size_t operator()(const HPCombi::PermGeneric &ar) const { diff --git a/include/hpcombi/vect16.hpp b/include/hpcombi/vect16.hpp index 251167c..2019704 100644 --- a/include/hpcombi/vect16.hpp +++ b/include/hpcombi/vect16.hpp @@ -116,6 +116,7 @@ inline std::ostream &operator<<(std::ostream &stream, return operator<<(stream, ar.v); } +//! This type appears in the doc because we provide a hash function for HPCombi::Vect16. template <> struct hash { size_t operator()(const HPCombi::Vect16 &ar) const { return std::hash{}(ar.v); diff --git a/include/hpcombi/vect_generic.hpp b/include/hpcombi/vect_generic.hpp index fa89254..381b941 100644 --- a/include/hpcombi/vect_generic.hpp +++ b/include/hpcombi/vect_generic.hpp @@ -239,6 +239,7 @@ std::ostream &operator<<(std::ostream &stream, return stream; } +//! This type appears in the doc because we provide a hash function for HPCombi::VectGeneric. template struct hash> { size_t operator()(const HPCombi::VectGeneric &ar) const {