【发布时间】:2018-01-25 17:41:52
【问题描述】:
所以,想象一个向量类:
template <size_t size>
class Vector<size> {
std::array<float, size> data;
....
}
如果大小为 1,有没有办法将模板专门化为浮点数? 比如:
// The case of a Vector with size 1 should behave like a float
template <>
using class Vector<1> = float;
我也想将其应用于其他课程。 例如,将列大小为 1 的 Matrix 视为具有行大小的 Vector。
提前感谢您的帮助:)
【问题讨论】:
-
你试过犰狳arma.sourceforge.net 吗?
-
我不知道您是否可以将
Vector<1>设为float的别名,但您可以拥有一个仅适用于Vector<1>的operator float&。 -
@Minor Threat 我正在编写自己的数学库,用于教育、学习和玩耍,但感谢您的建议。
-
添加一个
operator float&很好。用float替换整个东西是个坏主意。如果Vector<2>::size()存在,那么Vector<1>::size()也应该存在。
标签: c++ templates alias template-specialization