当前位置: 首页>>代码示例>>C++>>正文


C++ ExprResult::InterpretAsNumber方法代码示例

本文整理汇总了C++中ExprResult::InterpretAsNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ ExprResult::InterpretAsNumber方法的具体用法?C++ ExprResult::InterpretAsNumber怎么用?C++ ExprResult::InterpretAsNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ExprResult的用法示例。


在下文中一共展示了ExprResult::InterpretAsNumber方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: result

//						=======================
ExprResult				AddExpression::Evaluate
//						======================= 
(
	Context&			context
) const
{
	// Create a result, and initialise its type as error.
	ExprResult result( m_strPrecision );
	result.SetStatus( ExprResult::UNDEF_STATUS );

	// Evaluate the two operands of the addition expression.
	ExprResult left	 = m_pOperand1->Evaluate( context );
	ExprResult right = m_pOperand2->Evaluate( context );

	// Convert any possible variable to its contents.
	left.ConvertFromVar( context );
	right.ConvertFromVar( context );

	// Check if both the operands were evaluated as OK.
	if ( left.IsOK() && right.IsOK() )
	{
		// Check if both operands have either an arithmetic type or type
		// UNSPECIFIED which can be interpreted as an arithmetic type.
		if ( ( left.IsNumber() || ( left.IsUnspecified() && left.InterpretAsNumber() ) )
			&& ( right.IsNumber() || ( right.IsUnspecified() && right.InterpretAsNumber() ) ) )
		{
			// The (numerical) values of both operands can be added.
			result = Add( left, right );
		}
		else
		{
			// The values of both operands can be concatenated.
			result = Concatenate( left, right );
		}
	}
	else
	{
		// Check if an error was found in the left operand.
		if ( !left.IsOK() )
		{
			// Set as status and value of the result, those of the left operand.
			result.SetStatus( left.GetStatus() );
			result.SetValue( left.GetValue() );
		}
		else
		{
			// Set as status and value of the result, those of the right operand.
			result.SetStatus( right.GetStatus() );
			result.SetValue( right.GetValue() );
		}
	}
	
	return result;
}
开发者ID:CGI-TestFrame,项目名称:TestFrameEngine,代码行数:55,代码来源:AddExpression.cpp


注:本文中的ExprResult::InterpretAsNumber方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。