с шаблона специализации с постоянным значением

есть простой способ для определения частичной специализации шаблона класса с учетом числовые константы для одного из параметров шаблона? я пытаюсь создать специальные конструкторы только для определенных видов комбинаций шаблон:

template <typename a, size_t b> class example{    public:        example() { };        a value[b];};template <typename a, 2> class example{    public:        example(b1, b2) { value[0] = b1; value[1] = b2; };};
expected identifier before numeric constant

этот пример не скомпилируется, возвращая ошибку во втором определении.

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

<сильный>изменения:</сильный>

ищете способ, чтобы написать условно использовать конструктор, что-то функционально подобное:

template <typename a, size_t b> class example{    public:        // default constructor        example() { };        // specialized constructor for two values        example<a,2>(a b1, a b2) { value[0] = b1; value[1] = b2; };        a foo() {          a r;          for (size_t i = 0; i < b; ++b)            r += value[i];          return r;        }        // hypothetical specialized implementation        a foo<a, 2>() {          return value[0] + value[1];        }        a value[b];};