Почему сама функция хеш -хэша, то есть, оператор (), должна быть const?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему сама функция хеш -хэша, то есть, оператор (), должна быть const?

Сообщение Anonymous »

Я пытаюсь создать std :: unomordomed_set чей ключ типа std :: tuple .
Приведенный ниже код, составленный MCVS, дает мне:
Error C3848 expression having type 'const _Hasher' would lose some const-volatile qualifiers
in order to call 'size_t TupleHash::operator ()(const std::tuple &)'
< /code>

Код: Выделить всё

struct TupleHash
{
// uncomment the const keyword below resolves the error
template
std::size_t operator()(const std::tuple &t) // const
{
return std::hash{}(std::get(t)) ^ (std::hash{}(std::get(t))  

Подробнее здесь: [url]https://stackoverflow.com/questions/79673004/why-tuple-hash-function-itself-i-e-operator-needs-to-be-const[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»