Информация об изменениях

Сообщение Re: Специализация шаблонной функции шаблонного класса, подск от 11.07.2019 9:40

Изменено 11.07.2019 9:43 rg45

Re: Специализация шаблонной функции шаблонного класса, подскажит
Здравствуйте, Marty, Вы писали:

M>Есть шаблонный класс с шаблонными функциями. Хочу специализировать функции по их шаблонному аргументу, но чтобы они остались шаблонными по параметру шаблона класса.

M>И сам делал такое, но довольно нечасто и давно, и совсем позабыл, что к чему.

Вероятно, ты делал специализацию для шаблонных функций НЕшаблонного класса. А то, что ты хочешь — это не что иное, как частичная специализация шаблонных функций, которая никогда не поддерживалась раньше, не поддерживается и сейчас. Типовое решение — реализация шаблонной функции через шаблонный класс (который может быть вложенным и иметь доступ ка закрытым членам обрамляющего класса). И тогда частичная специализация делается уже для класса, а не для функции.
Re: Специализация шаблонной функции шаблонного класса, подск
Здравствуйте, Marty, Вы писали:

M>Есть шаблонный класс с шаблонными функциями. Хочу специализировать функции по их шаблонному аргументу, но чтобы они остались шаблонными по параметру шаблона класса.

M>И сам делал такое, но довольно нечасто и давно, и совсем позабыл, что к чему.

Вероятно, ты делал специализацию для шаблонных функций НЕшаблонного класса. А то, что ты хочешь — это не что иное, как частичная специализация шаблонных функций, которая никогда не поддерживалась раньше, не поддерживается и сейчас. Типовое решение — реализация шаблонной функции через шаблонный класс (который может быть вложенным и иметь доступ к закрытым членам обрамляющего класса). И тогда частичная специализация делается уже для класса, а не для функции.

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