最简单的问题是:
Symbolic x("x");
Symbolic y("y");
Symbolic a("a");
Symbolic ans;
a = 1.1;
ans = a ^ (x + y);
std::cout << ans;
基本上,这会开始无限递归循环并导致堆栈溢出。
如果a = 0或a = 1,则不会发生堆栈溢出,因为0 ^ x = 0且1 ^ x = 1.如果a未设置为常量值,则将打印&#34; a ^(x + Y)&#34;因为那不能简化。制作一个整数(1和0除外)不会改变任何东西。
最佳地,这将打印&#34;(1.1)^(x + y)&#34;因为没有办法简化。
我想知道是否有人之前有这个问题或知道解决方法。我尝试谷歌搜索,但这个网站使得无法使用谷歌找到有关Stack Overflow错误的信息。