diff --git a/include/stdx/ct_format.hpp b/include/stdx/ct_format.hpp index a717e02..c3133b4 100644 --- a/include/stdx/ct_format.hpp +++ b/include/stdx/ct_format.hpp @@ -229,6 +229,10 @@ constexpr auto ct_format = [](auto &&...args) { return format_result{detail::convert_output(), result.args}; }; + +template +constexpr auto num_fmt_specifiers = + detail::count_specifiers(std::string_view{Fmt}); } // namespace v1 } // namespace stdx diff --git a/test/ct_format.cpp b/test/ct_format.cpp index 9e875fc..662052d 100644 --- a/test/ct_format.cpp +++ b/test/ct_format.cpp @@ -218,3 +218,8 @@ TEST_CASE("format multiple mixed arguments with different type", string_constant>(), stdx::make_tuple(42, "B"sv)}); } + +TEST_CASE("num fmt specifiers", "[ct_format]") { + static_assert(stdx::num_fmt_specifiers<"{}"> == 1u); + static_assert(stdx::num_fmt_specifiers<"{} {}"> == 2u); +}