static_assert(std::is_same<typenameT1::DeviceType,typenameT2::DeviceType>::value,"Attempt to mix operands allocated on different device types.");
static_assert(IsStaticArrayType<T1>::value==IsStaticArrayType<T2>::value,"Attempt to mix static and non-static operands in binary expression templates.");