Lines Matching defs:RESULT
1457 // ArrayConstructor<RESULT> (wrapped in an Expr<RESULT>).
1461 template <typename RESULT, typename OPERAND>
1462 std::optional<Expr<RESULT>> MapOperation(FoldingContext &context,
1463 std::function<Expr<RESULT>(Expr<OPERAND> &&)> &&f, const Shape &shape,
1466 ArrayConstructor<RESULT> result{values};
1485 if constexpr (RESULT::category == TypeCategory::Character) {
1493 template <typename RESULT, typename A>
1494 ArrayConstructor<RESULT> ArrayConstructorFromMold(
1496 ArrayConstructor<RESULT> result{prototype};
1497 if constexpr (RESULT::category == TypeCategory::Character) {
1528 template <typename RESULT, typename LEFT, typename RIGHT>
1530 std::function<Expr<RESULT>(Expr<LEFT> &&, Expr<RIGHT> &&)> &&f,
1533 -> std::optional<Expr<RESULT>> {
1534 auto result{ArrayConstructorFromMold<RESULT>(leftValues, std::move(length))};
1579 template <typename RESULT, typename LEFT, typename RIGHT>
1581 std::function<Expr<RESULT>(Expr<LEFT> &&, Expr<RIGHT> &&)> &&f,
1584 -> std::optional<Expr<RESULT>> {
1585 auto result{ArrayConstructorFromMold<RESULT>(leftValues, std::move(length))};
1596 template <typename RESULT, typename LEFT, typename RIGHT>
1598 std::function<Expr<RESULT>(Expr<LEFT> &&, Expr<RIGHT> &&)> &&f,
1601 -> std::optional<Expr<RESULT>> {
1602 auto result{ArrayConstructorFromMold<RESULT>(leftScalar, std::move(length))};
1627 template <typename DERIVED, typename RESULT, typename... OPD>
1629 Operation<DERIVED, RESULT, OPD...> &operation) {
1630 if constexpr (RESULT::category == TypeCategory::Character) {
1631 return Expr<RESULT>{operation.derived()}.LEN();
1640 template <typename DERIVED, typename RESULT, typename OPERAND>
1642 Operation<DERIVED, RESULT, OPERAND> &operation,
1643 std::function<Expr<RESULT>(Expr<OPERAND> &&)> &&f)
1644 -> std::optional<Expr<RESULT>> {
1658 template <typename DERIVED, typename RESULT, typename OPERAND>
1660 FoldingContext &context, Operation<DERIVED, RESULT, OPERAND> &operation)
1661 -> std::optional<Expr<RESULT>> {
1663 std::function<Expr<RESULT>(Expr<OPERAND> &&)>{
1665 return Expr<RESULT>{DERIVED{std::move(operand)}};
1669 template <typename DERIVED, typename RESULT, typename LEFT, typename RIGHT>
1671 Operation<DERIVED, RESULT, LEFT, RIGHT> &operation,
1672 std::function<Expr<RESULT>(Expr<LEFT> &&, Expr<RIGHT> &&)> &&f)
1673 -> std::optional<Expr<RESULT>> {
1721 template <typename DERIVED, typename RESULT, typename LEFT, typename RIGHT>
1723 FoldingContext &context, Operation<DERIVED, RESULT, LEFT, RIGHT> &operation)
1724 -> std::optional<Expr<RESULT>> {
1726 std::function<Expr<RESULT>(Expr<LEFT> &&, Expr<RIGHT> &&)>{
1728 return Expr<RESULT>{DERIVED{std::move(left), std::move(right)}};
1957 template <typename DERIVED, typename RESULT, typename LEFT, typename RIGHT>
1959 const Operation<DERIVED, RESULT, LEFT, RIGHT> &operation) {