This avoids a gotcha:
- if errs() is constructed before outs()
- and if errs() is changed to a buffered state
- when destructing errs() (outs() has been destructed), the tied-to pointer to outs() is dangling.
Don't rerun tie(outs()) so that the next call to errs() will not reset errs().tie(nullptr)
Remark: after errs().tie(nullptr), the unbuffered stderr stream should be thread safe (not dependent on the thread safety of outs()).
destructed -> destroyed
opt out -> opt out of