summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorilnurkh <[email protected]>2025-10-22 14:54:19 +0300
committerilnurkh <[email protected]>2025-10-22 15:37:34 +0300
commit60a7e595fccfc41c18b352e18adb3bfe5264f7e7 (patch)
tree7047e8e3cd4c8e86c200fb3629be961c5c9033b5 /util
parent7bb0a6633c382e89963f86a77418c96de8036b5d (diff)
is_constructible_v check for TMaybe::emplace methods
commit_hash:d08428835a793ed8f62b2833dc4d53e433226f4b
Diffstat (limited to 'util')
-rw-r--r--util/generic/maybe.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/util/generic/maybe.h b/util/generic/maybe.h
index ddba23492e2..72782f4f421 100644
--- a/util/generic/maybe.h
+++ b/util/generic/maybe.h
@@ -303,7 +303,7 @@ public:
return *this;
}
- template <typename... Args>
+ template <typename... Args, class = std::enable_if_t<std::is_constructible_v<T, Args...>>>
T& GetOrEmplace(Args&&... args) Y_LIFETIME_BOUND {
if (!Defined()) {
Init(std::forward<Args>(args)...);
@@ -311,21 +311,21 @@ public:
return *Data();
}
- template <typename... Args>
+ template <typename... Args, class = std::enable_if_t<std::is_constructible_v<T, Args...>>>
T& Emplace(Args&&... args) Y_LIFETIME_BOUND {
Clear();
Init(std::forward<Args>(args)...);
return *Data();
}
- template <typename... Args>
+ template <typename... Args, class = std::enable_if_t<std::is_constructible_v<T, Args...>>>
T& emplace(Args&&... args) Y_LIFETIME_BOUND {
Clear();
Init(std::forward<Args>(args)...);
return *Data();
}
- template <typename... Args>
+ template <typename... Args, class = std::enable_if_t<std::is_constructible_v<T, Args...>>>
T& ConstructInPlace(Args&&... args) Y_LIFETIME_BOUND {
Clear();
Init(std::forward<Args>(args)...);