【发布时间】:2010-01-28 19:07:24
【问题描述】:
可以写模板吗
Foo<int n>
这样:
Foo<2>
给予
switch(x) {
case 1: return 1; break;
case 2: return 4; break;
}
同时
Foo<3>
给予
switch(x) {
case 1: return 1; break;
case 2: return 4; break;
case 3: return 9; break;
}
?
谢谢!
编辑:
如许多人所猜测的那样,将上面的代码更改为返回正方形(我问得不好)
【问题讨论】:
-
真的是用来计算平方的吗? (并丢弃它。)
-
在您的示例中,1、4 和 9 是什么?那应该是开关的“返回值”吗?还是你的意思是别的?
-
C++ 模板经常被比作花哨的宏,通常可以替代某些应用程序的传统宏,但它们不是宏预处理器。此外,由于您的
switch语句中没有可观察到的行为,因此您发布的示例可能不是您可能真正希望实现的目标的好示例。您可能想要描述您的总体目标是什么 - 可以让模板做您想做的事情,而不是按照您目前可能考虑的方式。 -
顺便说一句,在
return声明之后你不需要那些break。
标签: c++ templates switch-statement