|
|
1
1
“如何在此类中声明和定义” 在哪个班?您定义的是类模板,而不是类。不能调用类模板本身的静态函数,必须调用作为真实类一部分的特定版本的静态函数。
如果前者:
对我有用。 如果是后者(您只希望get3dVec成为SV<3>的成员,而不是所有SV<whatever>),则需要模板专业化:
|
|
|
2
0
... 或者一种变体肯定会起作用。(没有测试) 用途如下:
另一种方法是用基本数组替换std::tr1::array,但使用原始数组的风险由您自己承担:) |
|
|
3
0
首先,我相信你本来是想回来的
我认为这只会使事情变得不必要的复杂。一个快速的解决方案是使用boost::fusion::vector,将其放入类模板中,而不是上面的版本:
你可以和我一起用
请注意,它通过引用接受数组。你不能给它一个指针。这是因为它与参数的使用相匹配:另一种方法不能提供更少或更多的参数。它还将保护您免受以下情况的影响:
数组永远不能是空指针。当然,如果愿意,可以随时将数组参数更改为指针。这只是我个人的喜好:) |
|
4
0
我想返回一个3元素向量。原因是这些向量应该是几何实体,所以N不需要太高(我不是弦物理学家,所以我不在11维空间中工作)。我想创建一个模板,以避免重复代码,但将一维、二维和三维向量保持为单独的类型。 |