]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix return type of empty zip_/adjacent_transform [PR106803]
authorPatrick Palka <ppalka@redhat.com>
Fri, 9 Sep 2022 18:59:14 +0000 (14:59 -0400)
committerPatrick Palka <ppalka@redhat.com>
Fri, 9 Sep 2022 18:59:14 +0000 (14:59 -0400)
PR libstdc++/106803

libstdc++-v3/ChangeLog:

* include/std/ranges (views::_ZipTransform::operator()): Correct
return type in the empty case.
(views::_AdjacentTransform::operator()): Likewise.

libstdc++-v3/include/std/ranges

index 37ad80ad3de9d6d9662e3e576f30c919f3ee991b..20eb4e82ac813f5b21b0af4529417f843c786b8a 100644 (file)
@@ -5071,7 +5071,7 @@ namespace views::__adaptor
        operator() [[nodiscard]] (_Fp&& __f, _Ts&&... __ts) const
        {
          if constexpr (sizeof...(_Ts) == 0)
-           return views::empty<decay_t<invoke_result_t<_Fp>>>;
+           return views::empty<decay_t<invoke_result_t<decay_t<_Fp>&>>>;
          else
            return zip_transform_view(std::forward<_Fp>(__f), std::forward<_Ts>(__ts)...);
        }
@@ -5762,7 +5762,7 @@ namespace views::__adaptor
          operator() [[nodiscard]] (_Range&& __r, _Fp&& __f) const
          {
            if constexpr (_Nm == 0)
-             return views::empty<tuple<>>;
+             return zip_transform(std::forward<_Fp>(__f));
            else
              return adjacent_transform_view<all_t<_Range>, decay_t<_Fp>, _Nm>
                (std::forward<_Range>(__r), std::forward<_Fp>(__f));