Commit 5817bad2 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Simpler SFINAE in variadic F14BasicSet::emplaceItem

Summary: [Folly] Simpler SFINAE in variadic `F14BasicSet::emplaceItem`, without using `std::tuple_element_t` unsafely when `sizeof...(Args) == 0`.

Reviewed By: shixiao

Differential Revision: D7920929

fbshipit-source-id: d74d5b36ac683f72e21d83294aa890f49194280d
parent 96d583b9
...@@ -366,16 +366,13 @@ class F14BasicSet { ...@@ -366,16 +366,13 @@ class F14BasicSet {
return table_.tryEmplaceValue(key, key); return table_.tryEmplaceValue(key, key);
} }
template <typename... Args> template <typename Arg0, typename... Args>
std::enable_if_t< std::enable_if_t<
sizeof...(Args) != 1 || sizeof...(Args) != 0 ||
!std::is_same< !std::is_same<folly::remove_cvref_t<Arg0>, key_type>::value,
folly::remove_cvref_t<
std::tuple_element_t<0, std::tuple<Args...>>>,
key_type>::value,
std::pair<ItemIter, bool>> std::pair<ItemIter, bool>>
emplaceItem(Args&&... args) { emplaceItem(Arg0&& arg0, Args&&... args) {
key_type key(std::forward<Args>(args)...); key_type key(std::forward<Arg0>(arg0), std::forward<Args>(args)...);
return table_.tryEmplaceValue(key, std::move(key)); return table_.tryEmplaceValue(key, std::move(key));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment