当我的程序抛出一个代数循环错误,如下面的
terminate called after throwing an instance of 'std::runtime_error'
what(): Algebraic loop detected in DiagramBuilder:
A depends on
B depends on
C depends on
D depends on
E
Aborted (core dumped)
这是否意味着我有以下循环
A --> B --> C --> D --> E --> A
或者只是说在E
检测到循环(而A
到D
只是一些额外的背景),即
A --> B --> C --> D --> E --> (any one of A to D)
因为A
的值绝对没有办法影响我系统中E
的值......
答案 0 :(得分:0)
鉴于您的抽象系统名称很难知道,但代数循环检查逻辑在这里:
如果图中的循环依赖是真实的(就像在任何反馈循环中那样),那么你必须确保循环中至少有一个节点不是直接馈通"。请注意,大多数带有反馈的图表通过使工厂具有状态来破坏代数循环(输出取决于状态,而不是直接在输入上)。