Есть ли способ иметь специализированную специализацию на основе целого ряда значений вместо одного? Я знаю, что следующий код не является допустимым кодом на С++, но он показывает, что я хотел бы сделать. Я пишу код для 8-битной машины, поэтому есть разница в скорости использования int и символов.
template<unsigned SIZE>
class circular_buffer {
unsigned char buffer[SIZE];
unsigned int head; // index
unsigned int tail; // index
};
template<unsigned SIZE <= 256>
class circular_buffer {
unsigned char buffer[SIZE];
unsigned char head; // index
unsigned char tail; // index
};