aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvurozhkov <vurozhkov@yandex-team.com>2024-01-25 13:27:00 +0300
committervurozhkov <vurozhkov@yandex-team.com>2024-01-25 13:39:47 +0300
commitdf7719667920b9121f031932a09fef397987be10 (patch)
treec826cb70e163e0691f1396bb9ebfda19b46d2807
parentcbf9c434c0d9cb893e267be898fc85e81127cf62 (diff)
downloadydb-df7719667920b9121f031932a09fef397987be10.tar.gz
add fff-team poject to list of isolated projects
Добавил проект в список изолированных https://st.yandex-team.ru/
-rw-r--r--yt/yt/core/misc/public.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/yt/yt/core/misc/public.h b/yt/yt/core/misc/public.h
index 1577de2203..fa66b2ffef 100644
--- a/yt/yt/core/misc/public.h
+++ b/yt/yt/core/misc/public.h
@@ -191,10 +191,18 @@ struct TIsInvocable;
template <class T, class TRet, bool NoExcept, class... TArgs>
struct TIsInvocable<T, TRet(TArgs...) noexcept(NoExcept)>
{
+private:
+ static constexpr bool IsInvocable_ = requires (T&& t, TArgs&&... args) {
+ { std::forward<T>(t)(std::forward<TArgs>(args)...) } -> std::same_as<TRet>;
+ };
+
+ static constexpr bool IsNoThrowInvocable_ = requires (T&& t, TArgs&&... args) {
+ { std::forward<T>(t)(std::forward<TArgs>(args)...) } noexcept;
+ };
+public:
static constexpr bool Value =
- NoExcept ?
- std::is_nothrow_invocable_r_v<TRet, T, TArgs...> :
- std::is_invocable_r_v<TRet, T, TArgs...>;
+ IsInvocable_ &&
+ (!NoExcept || IsNoThrowInvocable_);
};
template <class T, class Sig>