Выберите другую хэш-функцию в классе шаблона, если параметр шаблона — std::pair [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Выберите другую хэш-функцию в классе шаблона, если параметр шаблона — std::pair [дубликат]

Сообщение Гость »


Я пытаюсь использовать свою собственную реализацию признака типа, которая проверяет, является ли тип std::pair или нет, чтобы определить, какую хеш-функцию использовать в контейнере. Вот радикально упрощенная версия кода (не обращайте внимания на фиктивную реализацию хеш-функции и контейнера):

#include #include #include #include #include шаблон структура is_pair: std::false_type { }; шаблон struct is_pair : std::true_type { }; шаблон структура PairHash { std::size_t оператор()(const std::pair& v) const { return 7 * v.первый + 11 * v.второй; } }; шаблон класс Контейнер { публика: TKey key_val{}; std::size_t ComputeHash() { вернуть THash()(key_val); } }; интервал основной() { static_assert(is_pair::value, "Это пара"); static_assert(!is_pair::value, "Это не пара"); // Ошибка компиляции, поскольку int32_t интерпретируется как тип std::pair // Контейнер контейнер; // std::cout
Ответить

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

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

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

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

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