0

我正在尝试使用表达式模板在 C++ 中编写一些简单的数学库。

template <typename E1, typename E2>
class MatSum : public MatExpression<MatSum<E1, E2>> {
E1 const& _u;
E2 const& _v;
public:
MatSum(E1 const& u, E2 const& v) :_u(u), _v(v) {
    assert(u.size() == v.size());
}

GLfloat operator[](size_t i) const { return _u[i] + _v[i]; }
GLfloat operator()(size_t i, size_t j) const { return _u(i,j) + _v(i,j); }
size_t size() const { return _v.size(); }
size_t width() const { return _v.width(); }
size_t height() const { return _v.height(); }
};

我怎样才能让一个构造器来检查类型。我需要 3 个构造函数。

  1. 两者都是 MatExpression
  2. 第一个是 MatExpression,第二个是标量
  3. 第一个是标量,第二个是 MatExpression

我知道我需要使用 type_traits,但我不明白如何使用它们。

4

0 回答 0