From: Anthony Geay Date: Mon, 11 Jul 2016 16:17:45 +0000 (+0200) Subject: Debug for Mantis23293. Specific implementation for GCC6 + C++11 X-Git-Tag: V8_1_0a1~3 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=1b91b0ae99dd3938ad615c0eeea953e292609dcd;p=tools%2Fmedcoupling.git Debug for Mantis23293. Specific implementation for GCC6 + C++11 --- diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx index f64108a8a..782d756e5 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx @@ -459,22 +459,49 @@ Value *ExprParser::evaluateLowLev(Value *valGen) const return stackOfVal.back(); } +#if __cplusplus >= 201103L + +ExprParser::ExprParser(ExprParser&& other):_father(other._father),_leaf(other._leaf),_is_parsing_ok(std::move(other._is_parsing_ok)),_expr(std::move(other._expr)),_sub_expr(std::move(other._sub_expr)),_func_btw_sub_expr(std::move(other._func_btw_sub_expr)) +{ + other._leaf=0; +} + +ExprParser& ExprParser::operator=(ExprParser&& other) +{ + _father=other._father; + _is_parsing_ok=std::move(other._is_parsing_ok); + _leaf=other._leaf; + _expr=std::move(other._expr); + _sub_expr=std::move(other._sub_expr); + _func_btw_sub_expr=std::move(other._func_btw_sub_expr); + other._leaf=other._leaf; + other._leaf=0; + return *this; +} + +#endif + void ExprParser::reverseThis() { if(_leaf) return ; for(std::vector::iterator iter=_sub_expr.begin();iter!=_sub_expr.end();iter++) (*iter).reverseThis(); - AutoPtr buf(new char[sizeof(ExprParser)]); - char *loc(reinterpret_cast(&_sub_expr[0])),*bufPtr(buf); std::size_t sz(_sub_expr.size()); std::size_t nbOfTurn(sz/2); +#if __cplusplus >= 201103L + for(std::size_t i=0;i buf(new char[sizeof(ExprParser)]); + char *loc(reinterpret_cast(&_sub_expr[0])),*bufPtr(buf); for(std::size_t i=0;i= 201103L + INTERPKERNEL_EXPORT ExprParser(ExprParser&& other); + INTERPKERNEL_EXPORT ExprParser& operator=(ExprParser&& other); +#endif INTERPKERNEL_EXPORT ExprParser(const std::string& expr, ExprParser *father=0); INTERPKERNEL_EXPORT ExprParser(const char *expr, int lgth, ExprParser *father=0); INTERPKERNEL_EXPORT ~ExprParser();