Skip to content

Commit 06fbe20

Browse files
committed
Add tests for format_kind
GCC 15.1.1 and higher have the feature. Check that it works for the GCC version, and check if the feature is indicated available by the macro.
1 parent c62b305 commit 06fbe20

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

tests/beman/optional/optional_range_support.t.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,23 @@ TEST(RangeSupportTest, EndOnNonEmptyOptional) {
231231
lambda();
232232
}
233233

234+
#if ((__GNUC__ >= 15) && (__GNUC_MINOR__ >= 1) && (__GNUC_PATCHLEVEL__ >= 1)) || \
235+
((__GNUC__ >= 16))
236+
static_assert(std::format_kind<beman::optional::optional<int>> == std::range_format::disabled);
237+
#endif
238+
239+
#if defined(__cpp_lib_format_ranges)
240+
static_assert(std::format_kind<beman::optional::optional<int>> == std::range_format::disabled);
241+
static_assert(std::format_kind<beman::optional::optional<int&>> == std::range_format::disabled);
242+
static_assert(std::format_kind<beman::optional::optional<int*>> == std::range_format::disabled);
243+
static_assert(std::format_kind<beman::optional::optional<empty>> == std::range_format::disabled);
244+
static_assert(std::format_kind<beman::optional::optional<empty&>> == std::range_format::disabled);
245+
static_assert(std::format_kind<beman::optional::optional<base>> == std::range_format::disabled);
246+
static_assert(std::format_kind<beman::optional::optional<base&>> == std::range_format::disabled);
247+
static_assert(std::format_kind<beman::optional::optional<derived>> == std::range_format::disabled);
248+
static_assert(std::format_kind<beman::optional::optional<derived&>> == std::range_format::disabled);
249+
#endif
250+
234251
TEST(RangeSupportTest, FormatOptionalIsStillDisabled) {
235252
// TODO: Always enable when all major compilers implement P2585R1: "Improve default container formatting".
236253
#if defined(__cpp_lib_format_ranges)

0 commit comments

Comments
 (0)