* Many internal reorganizations and optimizations.
* Caveats for class implementors:
- basic::copy() and basic::destroy() are gone; classes derived from
basic can use the defaults for the assignment operator and copy
constructor.
* Many internal reorganizations and optimizations.
* Caveats for class implementors:
- basic::copy() and basic::destroy() are gone; classes derived from
basic can use the defaults for the assignment operator and copy
constructor.
- basic::subs() now descends into subexpressions (if accessible via
nops()/op()/let_op()). If you have a custom implementation of subs()
that calls basic::subs() after substituting subexpressions, this needs
- basic::subs() now descends into subexpressions (if accessible via
nops()/op()/let_op()). If you have a custom implementation of subs()
that calls basic::subs() after substituting subexpressions, this needs