mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
This implements LWG4383 with LWG4500, LWG4523 follow-up corrections. This patch changes the constant_wrapper assignments operator (including compounds), increment and decrement to apply directly to value. In consequence the operators are only supported for types, for which above operations can be applied on const value. libstdc++-v3/ChangeLog: * include/std/type_traits (_CWOperators::operator++) (_CWOperators::operator--, _CWOperators::operator+=) (_CWOperators::operator-=, _CWOperators::operator*=) (_CWOperators::operator/=, _CWOperators::operator%=) (_CWOperators::operator&=, _CWOperators::operator|=) (_CWOperators::operator^=, _CWOperators::operator<<=) (_CWOperators::operator>>=, constant_wrapper::operator=): Adjust definitions to apply operator on value. * testsuite/20_util/constant_wrapper/generic.cc: Remove test_pseudo_mutator. * testsuite/20_util/constant_wrapper/instantiate.cc: Test that operators are not provided if wrapped type do not support them, or provide mutable operators.