CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
87 lines
3.2 KiB
ReStructuredText
87 lines
3.2 KiB
ReStructuredText
.. title:: clang-tidy - modernize-use-std-format
|
|
|
|
modernize-use-std-format
|
|
========================
|
|
|
|
Converts calls to ``absl::StrFormat``, or other functions via
|
|
configuration options, to C++20's ``std::format``, or another function
|
|
via a configuration option, modifying the format string appropriately and
|
|
removing now-unnecessary calls to ``std::string::c_str()`` and
|
|
``std::string::data()``.
|
|
|
|
For example, it turns lines like
|
|
|
|
.. code-block:: c++
|
|
|
|
return absl::StrFormat("The %s is %3d", description.c_str(), value);
|
|
|
|
into:
|
|
|
|
.. code-block:: c++
|
|
|
|
return std::format("The {} is {:3}", description, value);
|
|
|
|
The check uses the same format-string-conversion algorithm as
|
|
:doc:`modernize-use-std-print <../modernize/use-std-print>` and its
|
|
shortcomings and behaviour in combination with macros are described in the
|
|
documentation for that check.
|
|
|
|
Options
|
|
-------
|
|
|
|
.. option:: StrictMode
|
|
|
|
When `true`, the check will add casts when converting from variadic
|
|
functions and printing signed or unsigned integer types (including
|
|
fixed-width integer types from ``<cstdint>``, ``ptrdiff_t``, ``size_t``
|
|
and ``ssize_t``) as the opposite signedness to ensure that the output
|
|
would matches that of a simple wrapper for ``std::sprintf`` that
|
|
accepted a C-style variable argument list. For example, with
|
|
`StrictMode` enabled,
|
|
|
|
.. code-block:: c++
|
|
|
|
extern std::string strprintf(const char *format, ...);
|
|
int i = -42;
|
|
unsigned int u = 0xffffffff;
|
|
return strprintf("%u %d\n", i, u);
|
|
|
|
would be converted to
|
|
|
|
.. code-block:: c++
|
|
|
|
return std::format("{} {}\n", static_cast<unsigned int>(i), static_cast<int>(u));
|
|
|
|
to ensure that the output will continue to be the unsigned representation
|
|
of -42 and the signed representation of 0xffffffff (often 4294967254
|
|
and -1 respectively). When `false` (which is the default), these casts
|
|
will not be added which may cause a change in the output. Note that this
|
|
option makes no difference for the default value of
|
|
`StrFormatLikeFunctions` since ``absl::StrFormat`` takes a function
|
|
parameter pack and is not a variadic function.
|
|
|
|
.. option:: StrFormatLikeFunctions
|
|
|
|
A semicolon-separated list of regular expressions matching the
|
|
(fully qualified) names of functions to replace, with the requirement that
|
|
the first parameter contains the printf-style format string and the
|
|
arguments to be formatted follow immediately afterwards. Qualified member
|
|
function names are supported, but the replacement function name must be
|
|
unqualified. The default value is `absl::StrFormat`.
|
|
|
|
.. option:: ReplacementFormatFunction
|
|
|
|
The function that will be used to replace the function set by the
|
|
`StrFormatLikeFunctions` option rather than the default
|
|
`std::format`. It is expected that the function provides an interface
|
|
that is compatible with ``std::format``. A suitable candidate would be
|
|
`fmt::format`.
|
|
|
|
.. option:: FormatHeader
|
|
|
|
The header that must be included for the declaration of
|
|
`ReplacementFormatFunction` so that a ``#include`` directive can be added if
|
|
required. If `ReplacementFormatFunction` is `std::format` then this option will
|
|
default to ``<format>``, otherwise this option will default to nothing
|
|
and no ``#include`` directive will be added.
|