forked from OSchip/llvm-project
469d18c064
The `operator[]` of `_UnaryOp` and `_BinaryOp` returns the result of calling `__op_`, so its return type should be `__result_type`, not e.g. `_A0::value_type`. However, `_UnaryOp::value_type` also should never have been `_A0::value_type`; it needs to be the correct type for the result of the unary op, e.g. `bool` when the op is `logical_not`. This turns out to matter when multiple operators are nested, e.g. `+(v == v)` needs to have a `value_type` of `bool`, not `int`, even when `v` is of type `valarray<int>`. Differential Revision: https://reviews.llvm.org/D103416 |
||
---|---|---|
.. | ||
bit | ||
c.math | ||
cfenv/cfenv.syn | ||
complex.number | ||
numarray | ||
numbers | ||
numeric.ops | ||
numeric.requirements | ||
numerics.general | ||
rand |