LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
LMCAS::anonymous_namespace{expr_facade.cpp} 命名空间参考

函数

ExprResult logical_expression (const ExprPtr &lhs, const ExprPtr &rhs, LogicalNode::Op op, const char *operation)

函数说明

◆ logical_expression()

ExprResult LMCAS::anonymous_namespace{expr_facade.cpp}::logical_expression ( const ExprPtr & lhs,
const ExprPtr & rhs,
LogicalNode::Op op,
const char * operation )

在文件 expr_facade.cpp 第 214 行定义.

215 {
216 if (!lhs || (op != LogicalNode::Op::Not && !rhs)) {
218 "logical operands cannot be null", operation);
219 }
220 try {
224 rhs ? LMCAS::detail::node(rhs) : nullptr, op)));
225 } catch (const std::bad_alloc&) {
227 "logical expression allocation failed",
228 operation);
229 } catch (const std::exception& error) {
231 error.what(), operation);
232 }
233}
@ Not
一元逻辑非,right 为 nullptr。
static Result success(ExprPtr value)
std::shared_ptr<::LMCAS::SymbolicExpr > make_expression_ptr(SymbolicNodePtr root)
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
std::shared_ptr< const Node > make_node(Args &&... args)
ExprResult expression_failure(CasErrc code, std::string message, const char *operation)
const ExprPtr RelationOp op
const ExprPtr & rhs

引用了 LMCAS::expr_detail::expr_common::expression_failure(), LMCAS::InternalInvariant, LMCAS::InvalidArgument, logical_expression(), LMCAS::detail::make_expression_ptr(), LMCAS::detail::make_node(), LMCAS::detail::node(), LMCAS::LogicalNode::Not, LMCAS::op, LMCAS::ResourceLimit, LMCAS::rhs , 以及 LMCAS::Result< ExprPtr >::success().

被这些函数引用 logical_expression().

函数调用图:
这是这个函数的调用关系图: