
Fernando Cacciola wrote:
A deep-const wrapper with preserving-const will be such that:
W<T> w; W<T> const wc; W<T const> cw; W<T const> const cwc;
test(w); test(wc); test(cw); test(cwc);
outputs:
mutable const const const
value_initialized<> is a shallow-preserving-const wrapper:
value_initialized<T> w; value_initialized<T> const wc;
value_initialized<T const> cw; value_initialized<T const> const cwc;
test(w); test(wc); test(cw); test(cwc);
outputs:
mutable mutable const const
Is this the behaviour you want?
On second thought, I think I like the first better - a user who has written const should expect const - no matter where it was written. There are some notes on the isea of value wrapping, as well as a prototype for can_init at http://japple.freeshell.org/value_wrap.html Jim