TURTLE++:C++ 中的约束式命令编程库
1 隐式固定机制
在编程中,对于可约束变量的值计算,turtle++ 采用了延迟绑定的策略,即直到对变量进行读取操作时,才会计算其值。一旦为可约束变量确定了一个值,后续的计算就必须考虑这个值,以确保所施加的约束条件的一致性。
1.1 隐式固定的概念
隐式固定是指在计算可约束变量的值后,为了保证后续计算的一致性,turtle++ 会隐式地向约束存储中添加一个新的约束 variable == value 。例如:
constrained <int> a(2), b(0);
require (a == b);
std::cout << a(); // prints 2
std::cout << b(); // also prints 2
在这个例子中,输出 a() 强制计算 a 的值,此时 turtle++ 会隐式地添加约束 a == 2 到存储中,从而使得 b 的值也被确定为 2。如果没有隐式固定, b 的值将被评估为 0,这会违反约束 a == b 。
1.2 隐式固定的存储与处理
隐式固定不会立即添加到约束子存储中,而是保存在子存储内的延迟存储中。如果子存储中只有一个隐式固定,并且再次评估同一个变量时,该固定会在重新评估之前被擦除(
超级会员免费看
订阅专栏 解锁全文
4465

被折叠的 条评论
为什么被折叠?



