В буквальном смысле это не имеет смысла. Объясните, что вы пытаетесь сделать в первую очередь.
Шаблоны в C ++ имеют три вида параметров: 1) параметры типа, 2) параметры значения (не тип), 3) параметры шаблона.
Когда вы объявляете параметр как class T
, это параметр type (первый вид). Это «значение» на самом деле тип . unsigned
, например. То есть «значение» T
равно unsigned
. unsigned
будет заменен вместо T
в этом экземпляре шаблона class X
. Параметр T
не может иметь никакого числового значения, например 64
.
Тем не менее, вы, кажется, пытаетесь создать какой-то гибрид между параметрами 1 и 2 типа. Во-первых, это невозможно. Во-вторых, нет никакого способа выяснить, какое семантическое значение это могло бы иметь. Пожалуйста, уточните свои намерения.
Если вы хотите передать числовое значение, вам нужно создать параметр шаблона второго вида: параметр значения, как в
template <unsigned N = 64>
class X {
};
Итак, вам нужно сначала решить, какой тип шаблона вам действительно нужен: параметр типа или параметр значения. Или, может быть, оба. Вы не предоставили никаких сведений о вашем классе X
, поэтому нет никакого способа угадать, что вы пытаетесь сделать.