diff options
author | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-10-12 15:54:20 +0300 |
---|---|---|
committer | arkady-e1ppa <arkady-e1ppa@yandex-team.com> | 2023-10-12 16:51:27 +0300 |
commit | af591f3c1fb2a8b85e65dde9085ce908a65b166c (patch) | |
tree | 634fb3bc1eba5398e5135ca0e3b80b27c4a025eb | |
parent | 82b8a8475bd9ea093987a644baba6135e0967199 (diff) | |
download | ydb-af591f3c1fb2a8b85e65dde9085ce908a65b166c.tar.gz |
Addressed issues in rXXXXXX
Addressed issues
-rw-r--r-- | yt/yt/core/actions/future-inl.h | 29 | ||||
-rw-r--r-- | yt/yt/core/actions/unittests/future_ut.cpp | 14 | ||||
-rw-r--r-- | yt/yt/core/misc/error.h | 6 |
3 files changed, 24 insertions, 25 deletions
diff --git a/yt/yt/core/actions/future-inl.h b/yt/yt/core/actions/future-inl.h index a16b80c0a9c..b3b006122d2 100644 --- a/yt/yt/core/actions/future-inl.h +++ b/yt/yt/core/actions/future-inl.h @@ -1722,11 +1722,10 @@ TFuture<T>* TFutureHolder<T>::operator->() // noexcept namespace NDetail { template <class T> -concept CLightweight = std::default_initializable<T> && - std::is_trivially_destructible_v<T> && - std::is_move_assignable_v<T>; - -//////////////////////////////////////////////////////////////////////////////// +concept CLightweight = + std::default_initializable<T> && + std::is_trivially_destructible_v<T> && + std::is_move_assignable_v<T>; template <class T> class TFutureCombinerResultHolderStorage @@ -1736,11 +1735,11 @@ public: : Impl_(size) { } - template <class... Args> - requires std::constructible_from<T, Args...> - constexpr void ConstructAt(size_t index, Args&&... args) + template <class... TArgs> + requires std::constructible_from<T, TArgs...> + constexpr void ConstructAt(size_t index, TArgs&&... args) { - Impl_[index].emplace(std::forward<Args>(args)...); + Impl_[index].emplace(std::forward<TArgs>(args)...); } constexpr std::vector<T> VectorFromThis() && @@ -1762,8 +1761,6 @@ private: std::vector<std::optional<T>> Impl_; }; -//////////////////////////////////////////////////////////////////////////////// - template <NDetail::CLightweight T> class TFutureCombinerResultHolderStorage<T> { @@ -1772,15 +1769,15 @@ public: : Impl_(size) { } - template <class... Args> - requires std::constructible_from<T, Args...> - constexpr void ConstructAt(size_t index, Args&&... args) + template <class... TArgs> + requires std::constructible_from<T, TArgs...> + constexpr void ConstructAt(size_t index, TArgs&&... args) { - Impl_[index] = T(std::forward<Args>(args)...); + Impl_[index] = T(std::forward<TArgs>(args)...); } //! This method is inherently unsafe because it assumes - //! That you have filled every slot + //! that you have filled every slot. constexpr std::vector<T> VectorFromThis() && { return std::move(Impl_); diff --git a/yt/yt/core/actions/unittests/future_ut.cpp b/yt/yt/core/actions/unittests/future_ut.cpp index 0408fe811f2..a979e8477a1 100644 --- a/yt/yt/core/actions/unittests/future_ut.cpp +++ b/yt/yt/core/actions/unittests/future_ut.cpp @@ -24,7 +24,7 @@ class TFutureTest : public ::testing::Test { }; -struct NonAssignable +struct TNonAssignable { const int Value = 0; }; @@ -101,11 +101,11 @@ TEST_F(TFutureTest, NoncopyableApply5) TEST_F(TFutureTest, NonAssignable1) { - auto f = MakeFuture<NonAssignable>({ + auto f = MakeFuture<TNonAssignable>({ .Value = 1 }); - auto g = f.ApplyUnique(BIND([] (NonAssignable&& object) { + auto g = f.ApplyUnique(BIND([] (TNonAssignable&& object) { EXPECT_EQ(1, object.Value); })); @@ -115,7 +115,7 @@ TEST_F(TFutureTest, NonAssignable1) TEST_F(TFutureTest, NonAssignable2) { - auto f = MakeFuture<NonAssignable>({ + auto f = MakeFuture<TNonAssignable>({ .Value = 1 }); @@ -124,7 +124,7 @@ TEST_F(TFutureTest, NonAssignable2) futures.push_back(f); futures.push_back(f); - auto g = AllSet(futures).ApplyUnique(BIND([] (std::vector<TErrorOr<NonAssignable>>&& objects) { + auto g = AllSet(futures).ApplyUnique(BIND([] (std::vector<TErrorOr<TNonAssignable>>&& objects) { EXPECT_TRUE(objects.at(0).IsOK()); EXPECT_TRUE(objects.at(1).IsOK()); EXPECT_EQ(1, objects[0].Value().Value); @@ -136,7 +136,7 @@ TEST_F(TFutureTest, NonAssignable2) TEST_F(TFutureTest, NonAssignable3) { - auto f = MakeFuture<NonAssignable>({ + auto f = MakeFuture<TNonAssignable>({ .Value = 1 }); @@ -145,7 +145,7 @@ TEST_F(TFutureTest, NonAssignable3) futures.push_back(f); futures.push_back(f); - auto g = AllSucceeded(futures).ApplyUnique(BIND([] (std::vector<NonAssignable>&& objects) { + auto g = AllSucceeded(futures).ApplyUnique(BIND([] (std::vector<TNonAssignable>&& objects) { EXPECT_EQ(1, objects[0].Value); })); diff --git a/yt/yt/core/misc/error.h b/yt/yt/core/misc/error.h index 033cb3da16f..cdac4ab81eb 100644 --- a/yt/yt/core/misc/error.h +++ b/yt/yt/core/misc/error.h @@ -338,8 +338,10 @@ public: template <class U> TErrorOr(TErrorOr<U>&& other) noexcept; - TErrorOr<T>& operator = (const TErrorOr<T>& other) requires std::is_copy_assignable_v<T>; - TErrorOr<T>& operator = (TErrorOr<T>&& other) noexcept requires std::is_nothrow_move_assignable_v<T>; + TErrorOr<T>& operator = (const TErrorOr<T>& other) + requires std::is_copy_assignable_v<T>; + TErrorOr<T>& operator = (TErrorOr<T>&& other) noexcept + requires std::is_nothrow_move_assignable_v<T>; const T& Value() const &; T& Value() &; |