14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/core/IVariableAccessor.h"
17#include "arcane/core/ISubDomain.h"
18#include "arcane/core/ArcaneException.h"
19#include "arcane/core/VariableExpressionImpl.h"
21#include "arcane/expr/OperatorMng.h"
22#include "arcane/expr/BadOperationException.h"
33VariableExpressionImpl::
38 VariantBase::eType type = VariantBase::fromDataType(m_variable->dataType());
39 m_op = m_op_mng->find(
this, type);
41 throw BadOperationException(
"VariableExpressionImpl::VariableExpressionImpl",
"", type);
47void VariableExpressionImpl::
48assign(IExpressionImpl* expr)
50 ExpressionResult result(m_variable);
57void VariableExpressionImpl::
58assign(IExpressionImpl* expr, IntegerConstArrayView indices)
60 ExpressionResult result(indices);
61 result.allocate(VariantBase::fromDataType(m_variable->dataType()));
63 m_op->assign(&result, m_variable);
69void VariableExpressionImpl::
70apply(ExpressionResult* result)
72 m_op->evaluate(result, m_variable);
81 if (m_variable->dimension() != 1)
83 return m_variable->nbElement();
Base class for the expression implementation.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.