item++; return false; }); expect(tup, equal_to(std::make_tuple(2, 3))); }); }); subsuite<>(_, "tuple_joined()", [](auto &_) { using detail::tuple_joined; _.test("empty tuple", []() { std::tuple<> tup; std::ostringstream os1; os1 << tuple_joined(tup, [](auto &&) { return "bad"; }); expect(os1.str(), equal_to("")); std::ostringstream os2; os2 << tuple_joined(tup, [](auto &&) { return "bad"; }, " and "); expect(os2.str(), equal_to("")); }); _.test("1-tuple", []() { std::tuple<int> tup(1); std::ostringstream os1; os1 << tuple_joined(tup, [](auto &&item) { return item; }); expect(os1.str(), equal_to("1")); std::ostringstream os2;