Зачем нужен шаблон без параметра?

112
10 ноября 2019, 09:10

Есть пример кода. Совершенно не понимаю что это. Можно просто ссылку, где почитать об этом.

/* implement hash function so we can put GridLocation into an unordered_set */
template <> struct hash<GridLocation> {
  typedef GridLocation argument_type;
  typedef std::size_t result_type;
  std::size_t operator()(const GridLocation& id) const noexcept {
    return std::hash<int>()(id.x ^ (id.y << 4));
  }
};

Фрагмент с этого сайта.

Answer 1

Это не "шаблон без параметра". Это специализация шаблона, принимающего не менее одного параметра, для типа GridLocation. Это нужно для переопределения поведения шаблона для конкретного типа. Например has<int> будет иметь одну реализацию, а hash<GridLocation> - другую, hash<ваш_тип_тут> - третью.

READ ALSO
Qt Проблема с удалением widget из layout

Qt Проблема с удалением widget из layout

Хочу загружать в layout только выбранный сформированный виджет из контейнера, который заполняется в конструкторе класса MainWindow

106
Как рендерить подобие окон

Как рендерить подобие окон

В общем, я создаю игру, в которой у меня будет подобие операционной системыВ ней можно открывать, перетаскивать и выполнять прочие манипуляции...

121
Не выходит изменить размер квадратов в фиксированном поле, исходя из количества всех его клеток

Не выходит изменить размер квадратов в фиксированном поле, исходя из количества всех его клеток

У меня есть квадратное поле, которое я разбиваю на клетки, но размер этих клеток фиксирован и при небольшом количестве строк и столбцов на поле,...

105
Как встроить telegram в android приложение?

Как встроить telegram в android приложение?

Каким образом встроить чат-бота в Android приложениеПолучать ответы от бота в виде json-массива и выводить? или пытаться интегрировать его?

115