Optimal make_integer_sequence
[folly.git] / folly / test / UtilityTest.cpp
index 5507b96f8855c193f08667b3a89b0c62bb2491cb..34ba8692c9604ed431e7586ae19aaf0a94f550c2 100644 (file)
@@ -88,6 +88,15 @@ TEST(FollyIntegerSequence, core) {
   constexpr auto seq3 = folly::make_index_sequence<3>();
   static_assert(seq3.size() == 3, "");
   EXPECT_EQ(3, seq3.size());
+
+  // check our own implementation even when the builtin is available
+  using seq4 = typename folly::utility_detail::make_seq<5>::template apply<
+      folly::integer_sequence<int>,
+      folly::integer_sequence<int, 0>>;
+  EXPECT_EQ(5, seq4{}.size());
+  EXPECT_TRUE((std::is_same<seq4::value_type, int>::value));
+  using seq4_expected = folly::integer_sequence<int, 0, 1, 2, 3, 4>;
+  EXPECT_TRUE((std::is_same<seq4, seq4_expected>::value));
 }
 
 TEST_F(UtilityTest, MoveOnly) {