mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-13 12:19:12 +08:00
Moved assertions to the constructor to make the code more portable
This commit is contained in:
parent
1f1e0b9e30
commit
9137f560f0
@ -426,6 +426,20 @@ struct TensorEvaluator<const TensorCwiseTernaryOp<TernaryOp, Arg1Type, Arg2Type,
|
|||||||
m_arg3Impl(op.arg3Expression(), device)
|
m_arg3Impl(op.arg3Expression(), device)
|
||||||
{
|
{
|
||||||
EIGEN_STATIC_ASSERT((static_cast<int>(TensorEvaluator<Arg1Type, Device>::Layout) == static_cast<int>(TensorEvaluator<Arg3Type, Device>::Layout) || internal::traits<XprType>::NumDimensions <= 1), YOU_MADE_A_PROGRAMMING_MISTAKE);
|
EIGEN_STATIC_ASSERT((static_cast<int>(TensorEvaluator<Arg1Type, Device>::Layout) == static_cast<int>(TensorEvaluator<Arg3Type, Device>::Layout) || internal::traits<XprType>::NumDimensions <= 1), YOU_MADE_A_PROGRAMMING_MISTAKE);
|
||||||
|
|
||||||
|
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
|
||||||
|
typename internal::traits<Arg2Type>::StorageKind>::value),
|
||||||
|
STORAGE_KIND_MUST_MATCH)
|
||||||
|
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
|
||||||
|
typename internal::traits<Arg3Type>::StorageKind>::value),
|
||||||
|
STORAGE_KIND_MUST_MATCH)
|
||||||
|
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::Index,
|
||||||
|
typename internal::traits<Arg2Type>::Index>::value),
|
||||||
|
STORAGE_INDEX_MUST_MATCH)
|
||||||
|
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::Index,
|
||||||
|
typename internal::traits<Arg3Type>::Index>::value),
|
||||||
|
STORAGE_INDEX_MUST_MATCH)
|
||||||
|
|
||||||
eigen_assert(dimensions_match(m_arg1Impl.dimensions(), m_arg2Impl.dimensions()) && dimensions_match(m_arg1Impl.dimensions(), m_arg3Impl.dimensions()));
|
eigen_assert(dimensions_match(m_arg1Impl.dimensions(), m_arg2Impl.dimensions()) && dimensions_match(m_arg1Impl.dimensions(), m_arg3Impl.dimensions()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,22 +227,6 @@ struct traits<TensorCwiseTernaryOp<TernaryOp, Arg1XprType, Arg2XprType, Arg3XprT
|
|||||||
TernaryOp(typename Arg1XprType::Scalar,
|
TernaryOp(typename Arg1XprType::Scalar,
|
||||||
typename Arg2XprType::Scalar,
|
typename Arg2XprType::Scalar,
|
||||||
typename Arg3XprType::Scalar)>::type Scalar;
|
typename Arg3XprType::Scalar)>::type Scalar;
|
||||||
EIGEN_STATIC_ASSERT(
|
|
||||||
(internal::is_same<typename traits<Arg1XprType>::StorageKind,
|
|
||||||
typename traits<Arg2XprType>::StorageKind>::value),
|
|
||||||
STORAGE_KIND_MUST_MATCH)
|
|
||||||
EIGEN_STATIC_ASSERT(
|
|
||||||
(internal::is_same<typename traits<Arg1XprType>::StorageKind,
|
|
||||||
typename traits<Arg3XprType>::StorageKind>::value),
|
|
||||||
STORAGE_KIND_MUST_MATCH)
|
|
||||||
EIGEN_STATIC_ASSERT(
|
|
||||||
(internal::is_same<typename traits<Arg1XprType>::Index,
|
|
||||||
typename traits<Arg2XprType>::Index>::value),
|
|
||||||
STORAGE_INDEX_MUST_MATCH)
|
|
||||||
EIGEN_STATIC_ASSERT(
|
|
||||||
(internal::is_same<typename traits<Arg1XprType>::Index,
|
|
||||||
typename traits<Arg3XprType>::Index>::value),
|
|
||||||
STORAGE_INDEX_MUST_MATCH)
|
|
||||||
typedef traits<Arg1XprType> XprTraits;
|
typedef traits<Arg1XprType> XprTraits;
|
||||||
typedef typename traits<Arg1XprType>::StorageKind StorageKind;
|
typedef typename traits<Arg1XprType>::StorageKind StorageKind;
|
||||||
typedef typename traits<Arg1XprType>::Index Index;
|
typedef typename traits<Arg1XprType>::Index Index;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user