Можете привести пример использования частичной специализации шаблона в C++?

Частичная специализация шаблона в C++ позволяет определить шаблон класса или функции для определённых типов параметров, оставляя остальные параметры обобщёнными.

Короткий ответ

Что ответить на собеседовании

Частичная специализация шаблона в C++ позволяет определить шаблон класса или функции для определённых типов параметров, оставляя остальные параметры обобщёнными. Это полезно, когда нужно изменить поведение шаблона для некоторых типов, не переписывая полностью все варианты.

Подробный разбор

Ответ с пояснениями

Частичная специализация шаблона в C++ позволяет определить шаблон класса или функции для определённых типов параметров, оставляя остальные параметры обобщёнными. Это полезно, когда нужно изменить поведение шаблона для некоторых типов, не переписывая полностью все варианты.

Пример частичной специализации шаблона класса для указателей:

// Общий шаблон
template<typename T>
struct TypeInfo {
    static const char* name() { return "Unknown"; }
};

// Частичная специализация для указателей
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Pointer"; }
};

// Использование
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Выведет "Unknown"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Выведет "Pointer"
}

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку