@@ -147,7 +147,7 @@ namespace chaiscript
147147 }
148148
149149 size_t remaining () const {
150- return std::distance (m_pos, m_end);
150+ return static_cast < size_t >( std::distance (m_pos, m_end) );
151151 }
152152
153153 char operator *() const {
@@ -2213,8 +2213,8 @@ namespace chaiscript
22132213
22142214 switch (m_operators[t_precedence]) {
22152215 case (AST_Node_Type::Ternary_Cond) :
2216- m_match_stack.erase (m_match_stack.begin () + m_match_stack.size () - 2 ,
2217- m_match_stack.begin () + m_match_stack.size () - 1 );
2216+ m_match_stack.erase (advance_copy ( m_match_stack.begin (), m_match_stack.size () - 2 ) ,
2217+ advance_copy ( m_match_stack.begin (), m_match_stack.size () - 1 ) );
22182218 if (Symbol (" :" )) {
22192219 if (!Operator (t_precedence+1 )) {
22202220 throw exception::eval_error (" Incomplete "
@@ -2239,7 +2239,8 @@ namespace chaiscript
22392239 case (AST_Node_Type::Bitwise_Or) :
22402240 case (AST_Node_Type::Comparison) :
22412241 assert (m_match_stack.size () > 1 );
2242- m_match_stack.erase (m_match_stack.begin () + m_match_stack.size () - 2 , m_match_stack.begin () + m_match_stack.size () - 1 );
2242+ m_match_stack.erase (advance_copy (m_match_stack.begin (), m_match_stack.size () - 2 ),
2243+ advance_copy (m_match_stack.begin (), m_match_stack.size () - 1 ));
22432244 build_match<eval::Binary_Operator_AST_Node>(prev_stack_top, oper->text );
22442245 break ;
22452246
0 commit comments