Страницы

Поиск по вопросам

воскресенье, 12 января 2020 г.

Почему запрещена частичная специализация шаблонных функций?

#cpp #шаблоны_с++


template
void f(){}

template
void f(){}



  function template partial specialization 'f' is not allowed


Почему разрешена только полная специализация функции? Как то это не правильно, для
классов разрешено, можно и функции рассматривать как отдельные модули. Конечно, перегрузку
никто не отменял, но вдруг мне не нужны аргументы функции?
    


Ответы

Ответ 1



Частичная специализация шаблонов функций рассматривалась в рамках задачи #229, которая была отклонена и закрыта в n2173. Рекомендуемая альтернатива - это перегрузка функций. В случае если параметр шаблона не привязан к аргументу функции, ее надо делать статической функцией шаблонного класса.

Комментариев нет:

Отправить комментарий