简而言之,考虑下面的(伪)代码:
switch (n) {
case 15:
(keyword) customtemplate<15> t_var; /* I want it to be outside of switch */
break;
case 255:
(keyword) customtemplate<255> t_var; /* I want it to be outside of switch */
break;
default:
break;
}
t_var.do_something();
我想知道是否有一些(keyword)
这使得后面的变量成为全局变量,或者在 switch-case 范围之外。
我想要这样一个奇怪的代码的原因是,我无法声明具有任意数量的 n 的模板变量,即:
int n = 15; // or int n = 255;
custometemplate<n> t_var; /* I can't do this */
t_var.do_something;
The customtemplate
这篇文章中提到的实际上是RS<n,k>
in ezpwd-里德-所罗门 https://github.com/pjkundert/ezpwd-reed-solomon。我要声明RS<n, k>
这是其中之一RS<15,2>
, RS<15, 4>
, RS<15, 7>
, RS<15, 11>
, RS<64, 32>
, RS<160, 128>
.