ArrayBinary(const ArrayExpr<T1, T3>& lhs, const ArrayExpr<T2, T4>& rhs) : lhs_(lhs), rhs_(rhs) { pyQCDassert((BinaryOperandTraits<T1, T2>::equal_size(lhs_, rhs_)), std::out_of_range("ArrayBinary: lhs.size() != rhs.size()")); pyQCDassert((BinaryOperandTraits<T1, T2>::equal_layout(lhs_, rhs_)), std::bad_cast()); }
Lattice<T>& operator=(const LatticeExpr<U1, U2>& expr) { pyQCDassert ((this->data_.size() == expr.size()), std::out_of_range("Array::data_")); T* ptr = &(this->data_)[0]; for (unsigned long i = 0; i < expr.size(); ++i) { ptr[i] = static_cast<T>(expr[i]); } layout_ = &expr.layout(); site_size_ = expr.site_size(); return *this; }