Add hash functions to libk #46

Merged
hgruniaux merged 2 commits from hash into main 2024-05-07 00:08:04 +02:00
hgruniaux commented 2024-05-05 13:01:01 +02:00 (Migrated from github.com)
No description provided.
desfreng commented 2024-05-06 22:15:51 +02:00 (Migrated from github.com)
  • Est-ce qu'on pourrait rajouter une fonction de hachage sur les chaînes de caractères ?
  • Est-ce qu'il y a une interface pour ajouter le hach d'un objet quelconque ?
- Est-ce qu'on pourrait rajouter une fonction de hachage sur les chaînes de caractères ? - Est-ce qu'il y a une interface pour ajouter le hach d'un objet quelconque ?
hgruniaux commented 2024-05-06 22:18:32 +02:00 (Migrated from github.com)

@desfreng

  • Est-ce qu'on pourrait rajouter une fonction de hachage sur les chaînes de caractères ?

Déjà fait avec:

[[nodiscard]] inline uint64_t hash(const char *data) {
  return hash(reinterpret_cast<const uint8_t *>(data), strlen(data));
}

Pour libk::StringView, cette classe n'existe pas encore dans cette branche.

  • Est-ce qu'il y a une interface pour ajouter le hach d'un objet quelconque ?

Il faut surcharger la fonction libk::hash() pour ton objet. Mais pour t'aider tu peux utiliser libk::hash_multiple(val1, val2, ...) qui hash val1, val2, ... puis combine les hash ensemble. Ou directement libk::hash_combine qui est identique à boost::hash_combine.

Tu penses à une interface plus précise ?

@desfreng > * Est-ce qu'on pourrait rajouter une fonction de hachage sur les chaînes de caractères ? Déjà fait avec: ``` [[nodiscard]] inline uint64_t hash(const char *data) { return hash(reinterpret_cast<const uint8_t *>(data), strlen(data)); } ``` Pour `libk::StringView`, cette classe n'existe pas encore dans cette branche. > * Est-ce qu'il y a une interface pour ajouter le hach d'un objet quelconque ? Il faut surcharger la fonction `libk::hash()` pour ton objet. Mais pour t'aider tu peux utiliser `libk::hash_multiple(val1, val2, ...)` qui hash `val1`, `val2`, ... puis combine les hash ensemble. Ou directement `libk::hash_combine` qui est identique à `boost::hash_combine`. Tu penses à une interface plus précise ?
desfreng (Migrated from github.com) approved these changes 2024-05-07 00:07:32 +02:00
desfreng commented 2024-05-07 00:07:40 +02:00 (Migrated from github.com)

Nope Perfect !

Nope Perfect !
Sign in to join this conversation.
No description provided.