1
10
我想你可以用 CRTP boost::operator .
|
2
4
这是我在玩C++ +0X功能的时候提出的。这是唯一的C++ 0x特性
基本上,我们可以使用一个静态大小检查函数来检查给定的索引是否小于向量的大小。如果索引超出界限,我们使用静态断言生成编译器错误:
如果向量只有两个元素,可以使用x和y,但不能使用z。如果向量有三个或三个以上的元素,则可以全部使用这三个元素。
最后我对构造函数做了同样的事情——我为2维、3维和4维的向量创建了构造函数,并添加了一个
我中途放弃了这个项目,所以这样做可能会有一些巨大的问题,我没有遇到。。。至少这是一个可以考虑的选项。 |
3
0
最简单的方法?使用外部函数:
另一方面,你仍然可以提供
|
4
0
我不知道您是否可以绕过赋值运算符的键入问题,但是您可以通过定义各种运算符的模板版本、实现它们的助手函数,然后使用继承来简化工作。
|
B. A. Sylla · 两种特殊方法中的相同代码 7 年前 |
StoneThrow · 模板运算符<未调用 7 年前 |
0xbadf00d · 我的部分模板专用化的模板参数不可推断 8 年前 |
Paul Houx · 如何专门化具有多个参数的函数模板? 9 年前 |
Sam Kellett · 我可以从类型列表中声明模板专用化吗? 9 年前 |
Jingcheng Yu · 如何专门化类模板的静态函数? 9 年前 |
user3749332 · 模板专用化-模板参数太少[closed] 10 年前 |
Timothy Shields · 模板Conundrum 11 年前 |