static_assert(std::is_same<typenameT1::DeviceType,typenameT2::DeviceType>::value,"Attempt to mix operands allocated on different device types.");
static_assert(IsStaticType<T1>::value==IsStaticType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates.");
staticconstexprboolisStatic(){returnfalse;}
static_assert(IsStaticArrayType<T1>::value==IsStaticArrayType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates.");
static_assert(std::is_same<typenameT1::DeviceType,typenameT2::DeviceType>::value,"Attempt to mix operands allocated on different device types.");
static_assert(IsStaticType<T1>::value==IsStaticType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates.");
static_assert(IsStaticArrayType<T1>::value==IsStaticArrayType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates.");
static_assert(IsStaticType<T1>::value,"Left-hand side operand of static expression is not static, i.e. based on static vector.");
static_assert(IsStaticType<T2>::value,"Right-hand side operand of static expression is not static, i.e. based on static vector.");
static_assert(IsStaticArrayType<T1>::value,"Left-hand side operand of static expression is not static, i.e. based on static vector.");
static_assert(IsStaticArrayType<T2>::value,"Right-hand side operand of static expression is not static, i.e. based on static vector.");
usingRealType=typenameT1::RealType;
static_assert(IsStaticType<T1>::value==IsStaticType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates");
static_assert(IsStaticArrayType<T1>::value==IsStaticArrayType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates");
static_assert(T1::getSize()==T2::getSize(),"Attempt to mix static operands with different sizes.");