Полная специализация шаблона в C++
Полная специализация задает особую реализацию шаблона, когда все параметры шаблона заменены конкретными значениями.
Заголовок специализации начинается с пустого
списка параметров: template<>,
а имя совпадает с исходным шаблоном
с подставленным типом.
Запишем общий Box и отдельную
версию для bool, затем выведем
метку из специализации:
#include <iostream>
template<typename T>
struct Box {
T value;
};
template<>
struct Box<bool> {
bool value;
static constexpr int tag = 1;
};
int main() {
Box<bool> flag{true};
std::cout << flag.tag << "\n";
return 0;
}
Добавьте полную специализацию Box<char>
с полем char code. Создайте объект
со значением 'Z' и выведите code.