forked from OSchip/llvm-project
![]() 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 |
||
---|---|---|
.. | ||
class.gslice | ||
class.slice | ||
template.gslice.array | ||
template.indirect.array | ||
template.mask.array | ||
template.slice.array | ||
template.valarray | ||
valarray.nonmembers | ||
valarray.range | ||
valarray.syn |