Skip to content

Commit fd93dad

Browse files
committed
Fix tuple
1 parent 496cfb8 commit fd93dad

2 files changed

Lines changed: 49 additions & 50 deletions

File tree

interface/core/containers/tuple.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -629,9 +629,7 @@ namespace hud
629629
* @param args List of objects to copy construct into the tuple
630630
*/
631631
explicit(hud::disjunction_v<hud::is_explicitly_copy_constructible<types_t>...>) constexpr tuple(const types_t &...args) noexcept
632-
requires(hud::conjunction_v<
633-
hud::bool_constant<sizeof...(types_t) >= 1>,
634-
hud::is_copy_constructible<hud::details::tuple_leaf<0, types_t>>...>)
632+
requires(hud::conjunction_v<hud::bool_constant<sizeof...(types_t) >= 1>, hud::is_copy_constructible<types_t>...>)
635633
: super_type(args...)
636634
{
637635
}
@@ -646,7 +644,7 @@ namespace hud
646644
requires(hud::conjunction_v<
647645
hud::bool_constant<sizeof...(types_t) == sizeof...(u_types_t)>,
648646
hud::bool_constant<sizeof...(types_t) >= 1>,
649-
hud::is_constructible<hud::details::tuple_leaf<0, types_t>, u_types_t>...>)
647+
hud::is_constructible<types_t, u_types_t>...>)
650648
explicit(hud::disjunction_v<hud::is_explicitly_move_constructible<types_t, u_types_t>...>) constexpr tuple(u_types_t &&...args) noexcept
651649
: super_type(hud::forward<u_types_t>(args)...)
652650
{

test/hashmap/hashmap_add.cpp

Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4985,33 +4985,34 @@ GTEST_TEST(hashmap, add_by_piecewise_construct_bitwise_same_type)
49854985
using value_type = i64;
49864986
using hashmap_type = hud::hashmap<key_type, value_type, hud::hash_64<key_type>, hud::equal<key_type>, hud_test::allocator_watcher<1>>;
49874987

4988-
const auto test = []()
4988+
const auto test = []() -> decltype(auto)
49894989
{
49904990
constexpr usize reserved_size = 2;
49914991
hashmap_type map;
49924992
map.reserve(reserved_size);
49934993
const auto it = map.add(hud::tag_piecewise_construct, hud::forward_as_tuple(1), hud::forward_as_tuple(2));
4994-
return hud::tuple {
4994+
auto result = std::tuple {
49954995
map.count() == 1, // 0
49964996
it->key() == 1, // 1
49974997
it->value() == 2 // 2
49984998
};
4999+
return result;
49995000
};
50005001

50015002
// Non constant
50025003
{
50035004
const auto result = test();
5004-
hud_assert_true(hud::get<0>(result));
5005-
hud_assert_true(hud::get<1>(result));
5006-
hud_assert_true(hud::get<2>(result));
5005+
hud_assert_true(std::get<0>(result));
5006+
hud_assert_true(std::get<1>(result));
5007+
hud_assert_true(std::get<2>(result));
50075008
}
50085009

50095010
// Constant
50105011
{
50115012
constexpr auto result = test();
5012-
hud_assert_true(hud::get<0>(result));
5013-
hud_assert_true(hud::get<1>(result));
5014-
hud_assert_true(hud::get<2>(result));
5013+
hud_assert_true(std::get<0>(result));
5014+
hud_assert_true(std::get<1>(result));
5015+
hud_assert_true(std::get<2>(result));
50155016
}
50165017
}
50175018

@@ -5030,7 +5031,7 @@ GTEST_TEST(hashmap, add_by_piecewise_construct_bitwise_different_type)
50305031
map.reserve(reserved_size);
50315032
const auto it = map.add(hud::tag_piecewise_construct, hud::forward_as_tuple(other_key_type {1}), hud::forward_as_tuple(other_value_type {2}));
50325033

5033-
return hud::tuple {
5034+
return std::tuple {
50345035
map.count() == 1, // 0
50355036
it->key() == 1, // 1
50365037
it->value() == 2 // 2
@@ -5040,17 +5041,17 @@ GTEST_TEST(hashmap, add_by_piecewise_construct_bitwise_different_type)
50405041
// Non constant
50415042
{
50425043
const auto result = test();
5043-
hud_assert_true(hud::get<0>(result));
5044-
hud_assert_true(hud::get<1>(result));
5045-
hud_assert_true(hud::get<2>(result));
5044+
hud_assert_true(std::get<0>(result));
5045+
hud_assert_true(std::get<1>(result));
5046+
hud_assert_true(std::get<2>(result));
50465047
}
50475048

50485049
// Constant
50495050
{
50505051
constexpr auto result = test();
5051-
hud_assert_true(hud::get<0>(result));
5052-
hud_assert_true(hud::get<1>(result));
5053-
hud_assert_true(hud::get<2>(result));
5052+
hud_assert_true(std::get<0>(result));
5053+
hud_assert_true(std::get<1>(result));
5054+
hud_assert_true(std::get<2>(result));
50545055
}
50555056
}
50565057

@@ -5071,7 +5072,7 @@ GTEST_TEST(hashmap, add_by_piecewise_construct_non_bitwise_same_type)
50715072

50725073
const auto it = map.add(hud::tag_piecewise_construct, hud::forward_as_tuple(1, ptr + 0), hud::forward_as_tuple(2, ptr + 1));
50735074

5074-
return hud::tuple {
5075+
return std::tuple {
50755076
map.count() == 1, // 0
50765077
it->key().constructor_count() == 1, // 1
50775078
it->key().move_constructor_count() == 0, // 2
@@ -5093,40 +5094,40 @@ GTEST_TEST(hashmap, add_by_piecewise_construct_non_bitwise_same_type)
50935094
// Non constant
50945095
{
50955096
const auto result = test();
5096-
hud_assert_true(hud::get<0>(result));
5097-
hud_assert_true(hud::get<1>(result));
5098-
hud_assert_true(hud::get<2>(result));
5099-
hud_assert_true(hud::get<3>(result));
5100-
hud_assert_true(hud::get<4>(result));
5101-
hud_assert_true(hud::get<5>(result));
5102-
hud_assert_true(hud::get<6>(result));
5103-
hud_assert_true(hud::get<7>(result));
5104-
hud_assert_true(hud::get<8>(result));
5105-
hud_assert_true(hud::get<9>(result));
5106-
hud_assert_true(hud::get<10>(result));
5107-
hud_assert_true(hud::get<11>(result));
5108-
hud_assert_true(hud::get<12>(result));
5109-
hud_assert_true(hud::get<13>(result));
5110-
hud_assert_true(hud::get<14>(result));
5097+
hud_assert_true(std::get<0>(result));
5098+
hud_assert_true(std::get<1>(result));
5099+
hud_assert_true(std::get<2>(result));
5100+
hud_assert_true(std::get<3>(result));
5101+
hud_assert_true(std::get<4>(result));
5102+
hud_assert_true(std::get<5>(result));
5103+
hud_assert_true(std::get<6>(result));
5104+
hud_assert_true(std::get<7>(result));
5105+
hud_assert_true(std::get<8>(result));
5106+
hud_assert_true(std::get<9>(result));
5107+
hud_assert_true(std::get<10>(result));
5108+
hud_assert_true(std::get<11>(result));
5109+
hud_assert_true(std::get<12>(result));
5110+
hud_assert_true(std::get<13>(result));
5111+
hud_assert_true(std::get<14>(result));
51115112
}
51125113

51135114
// Constant
51145115
{
51155116
constexpr auto result = test();
5116-
hud_assert_true(hud::get<0>(result));
5117-
hud_assert_true(hud::get<1>(result));
5118-
hud_assert_true(hud::get<2>(result));
5119-
hud_assert_true(hud::get<3>(result));
5120-
hud_assert_true(hud::get<4>(result));
5121-
hud_assert_true(hud::get<5>(result));
5122-
hud_assert_true(hud::get<6>(result));
5123-
hud_assert_true(hud::get<7>(result));
5124-
hud_assert_true(hud::get<8>(result));
5125-
hud_assert_true(hud::get<9>(result));
5126-
hud_assert_true(hud::get<10>(result));
5127-
hud_assert_true(hud::get<11>(result));
5128-
hud_assert_true(hud::get<12>(result));
5129-
hud_assert_true(hud::get<13>(result));
5130-
hud_assert_true(hud::get<14>(result));
5117+
hud_assert_true(std::get<0>(result));
5118+
hud_assert_true(std::get<1>(result));
5119+
hud_assert_true(std::get<2>(result));
5120+
hud_assert_true(std::get<3>(result));
5121+
hud_assert_true(std::get<4>(result));
5122+
hud_assert_true(std::get<5>(result));
5123+
hud_assert_true(std::get<6>(result));
5124+
hud_assert_true(std::get<7>(result));
5125+
hud_assert_true(std::get<8>(result));
5126+
hud_assert_true(std::get<9>(result));
5127+
hud_assert_true(std::get<10>(result));
5128+
hud_assert_true(std::get<11>(result));
5129+
hud_assert_true(std::get<12>(result));
5130+
hud_assert_true(std::get<13>(result));
5131+
hud_assert_true(std::get<14>(result));
51315132
}
51325133
}

0 commit comments

Comments
 (0)